• 在IIS上部署基于django WEB框架的python网站应用


    django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上。

    笔者的运行环境:

    原理解释:

           IIS通过ISAPI可以扩展支持其他语言实现的WEB应用,isapi_wsgi-0.4.2-py2.5这个程序作为ISAPI实现了WSGI规范,

    WSGI规范是作为python web应用与web服务容器之间的接口规范,通过这个程序,对IIS的某个虚拟站点的请求就可以定向

    到这个ISAPI去处理,而无需为了去部署到某个特定容器里而去改动python web的任何代码。

    步骤

    1. 先安装好IIS, Python, Django, setuptools, pywin32,  这些很简单。(将环境变量PATH里加入python的安装主目录)
    2. 下载isapi_wsgi-0.4.2-py2.5.egg文件   (这是python里的一种安装包,类似于Red Hat的RPM,当然你也可以下载exe或zip下载安装)
    3. 下载后,在命令行窗口输入:easy_install isapi_wsgi-0.4.2-py2.5.egg    (这里它会提示你安装成功,注意:必须安装setuptools才能运行该命令)
    4. 写一个部署脚本,名字假定为wsgi_deploy.py  (假定你的web project 目录为 C:Web, 在Web目录下有一个App为mysite) ,目录一定不要弄错,否则容易出现HTTP 500错误。

    import os, sys sys.path.append(‘C:\Web') os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

    import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()

    import isapi_wsgi # The entry points for the ISAPI extension. def __ExtensionFactory__():     return isapi_wsgi.ISAPISimpleHandler(application)

    if __name__=='__main__':     # If run from the command-line, install ourselves.     from isapi.install import *     params = ISAPIParameters()     # Setup the virtual directories - this is a list of directories our     # extension uses - in this case only 1.     # Each extension has a "script map" - this is the mapping of ISAPI     # extensions.     sm = [         ScriptMapParams(Extension="*", Flags=0)     ]     vd = VirtualDirParameters(Name="mysite",                               Description = "ISAPI-WSGI ISAPISimpleHandler Django mysite",                               ScriptMaps = sm,                               ScriptMapUpdate = "replace"                               )     params.VirtualDirs = [vd]     HandleCommandLine(params)

           5. 在命令行输入: wsgi_deploy.py  install  ,运行之后会在IIS上创建上面脚本定义的虚拟路径"mysite", 同时你会发现一个'_wsgi_deploy.dll'文件会创建出来,这个就是ISAPI。

             细心的读者不妨在IIS的"mysite“的设置里去查看下就明白了。

             

       

          6.部署后,既可以通过浏览器访问你的Web App了

         

    注:如果出现错误,如何处理?

    可以在命令行输入: python -m win32traceutil     便可以输出isapi_wsgi模块输出的错误堆栈信息

    通常错误都是出现在路径方面。如类似于

    ImportError: Could not import settings 'mysite.settings' (Is it on sys.path?): N o module named mysite.settings 这样的问题。

    这样的情况,需要去找到上述的部署脚本wsgi_deploy.py,去修改为正确的配置,然后记住需要先运行

    wsgi_deploy.py  remove后再运行wsgi_deploy.py  install。

    参考:http://code.google.com/p/isapi-wsgi/ 

  • 相关阅读:
    雷锋依然在人间 工厂方法模式
    为别人做嫁衣 代理模式
    穿什么有这么重要? 装饰模式
    437. Path Sum III
    434. Number of Segments in a String
    447. Add Strings
    414. Third Maximum Number
    412. Fizz Buzz
    404. Sum of Left Leaves
    405. Convert a Number to Hexadecimal
  • 原文地址:https://www.cnblogs.com/zhwl/p/4291957.html
Copyright © 2020-2023  润新知