在IIS上部署基于django WEB框架的python网站应用
2012-02-24 18:07
1191 查看
django是一款基于python语言的WEB开源框架,本文给出了如何将基于django写的python网站部署到window的IIS上。
笔者的运行环境:
Window xp sp3
IIS 5.1
Python 2.7.2 (http://www.python.org/)
pywin32-217.win32-py2.7 (python的win32扩展)
Django-1.3.1 (https://www.djangoproject.com/)
isapi_wsgi-0.4.2-py2.5 (http://code.google.com/p/isapi-wsgi/ ,基于IIS的ISAPI扩展的WSGI实现).
setuptools-0.6c11.win32-py2.7
原理解释:
IIS通过ISAPI可以扩展支持其他语言实现的WEB应用,isapi_wsgi-0.4.2-py2.5这个程序作为ISAPI实现了WSGI规范,
WSGI规范是作为python web应用与web服务容器之间的接口规范,通过这个程序,对IIS的某个虚拟站点的请求就可以定向
到这个ISAPI去处理,而无需为了去部署到某个特定容器里而去改动python web的任何代码。
步骤
先安装好IIS, Python, Django, setuptools, pywin32, 这些很简单。(将环境变量PATH里加入python的安装主目录)
下载isapi_wsgi-0.4.2-py2.5.egg文件 (这是python里的一种安装包,类似于Red Hat的RPM,当然你也可以下载exe或zip下载安装)
下载后,在命令行窗口输入:easy_install isapi_wsgi-0.4.2-py2.5.egg (这里它会提示你安装成功,注意:必须安装setuptools才能运行该命令)
写一个部署脚本,名字假定为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/
笔者的运行环境:
Window xp sp3
IIS 5.1
Python 2.7.2 (http://www.python.org/)
pywin32-217.win32-py2.7 (python的win32扩展)
Django-1.3.1 (https://www.djangoproject.com/)
isapi_wsgi-0.4.2-py2.5 (http://code.google.com/p/isapi-wsgi/ ,基于IIS的ISAPI扩展的WSGI实现).
setuptools-0.6c11.win32-py2.7
原理解释:
IIS通过ISAPI可以扩展支持其他语言实现的WEB应用,isapi_wsgi-0.4.2-py2.5这个程序作为ISAPI实现了WSGI规范,
WSGI规范是作为python web应用与web服务容器之间的接口规范,通过这个程序,对IIS的某个虚拟站点的请求就可以定向
到这个ISAPI去处理,而无需为了去部署到某个特定容器里而去改动python web的任何代码。
步骤
先安装好IIS, Python, Django, setuptools, pywin32, 这些很简单。(将环境变量PATH里加入python的安装主目录)
下载isapi_wsgi-0.4.2-py2.5.egg文件 (这是python里的一种安装包,类似于Red Hat的RPM,当然你也可以下载exe或zip下载安装)
下载后,在命令行窗口输入:easy_install isapi_wsgi-0.4.2-py2.5.egg (这里它会提示你安装成功,注意:必须安装setuptools才能运行该命令)
写一个部署脚本,名字假定为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/
相关文章推荐
- 在IIS上部署基于django WEB框架的python网站应用
- 在IIS上部署基于django WEB框架的python网站应用
- python学习(5):web网站开发利器Django框架
- Python Web接口开发学习笔记(基于Django框架)(一)
- SAE Django框架python应用部署----独享服务器
- python web框架django的容器化部署
- 基于 WKWebView 的混合开发框架(网站生成ios应用)
- IIS 部署 python web框架 Flask
- Django视频教程 - 基于Python的Web框架(全13集)
- 【day 17】python编程:从入门到实践学习笔记-基于Django框架的Web开发-设计样式和部署(一)
- ASP.NET WEB应用或网站 部署到win2003 IIS信息管理器中
- Windows下Python的Django框架环境部署及应用编写入门
- Windows下Python的Django框架环境部署及应用编写入门
- 新手开发基于Django框架的python web(二)
- Mac 基于Python搭建Django应用框架
- uwsgi+django+nginx+supervisor部署web应用(python)
- django(Python Web 框架)
- [zt]【HoorayOS】开源的Web桌面应用框架——安装部署
- Python开发入门与实战19-Windows Azure web 应用部署
- 全面解读Python Web开发框架Django