Python开发入门与实战15IIS部署

15. IIS部署

前面的章节我们完成了基本的业务功能的开发,本章节我们来说说python django项目如何部署到实际的运行环境,完成开发系统的发布工作。

Python Django 项目部署发布到windows iis环境,运行环境如下:

操作系统:windows 8.1

IIS版本:8.5

Python版本:2.7

Django版本:1.4

15.1. IIS服务添加CGI组件

在操作系统的启用或关闭windows功能里添加IIS CGI组件,如已添加忽略。

Python开发入门与实战15IIS部署

15.2. IIS服务添加FAST CGI组件

打开IIS管理器时,系统会提示如下图,选择是:

Python开发入门与实战15IIS部署

或者访问网址:http://www.microsoft.com/web/downloads/platform.aspx,进入web安装平台程序,搜索FastCGI关键字。

Python开发入门与实战15IIS部署

Python开发入门与实战15IIS部署

 

安装WFastCGI2.1Gateway for IIS and Python 2.7.9组件,安装完成后在C:\Python27\Scripts\目录下会增加wfastcgi.py文件。

Python开发入门与实战15IIS部署

15.3. 拷贝wfastcgi.py文件到项目manage.py相同目录下

把项目文件拷贝到C:\inetpub\wwwroot\mysite目录下,同时,wfastcgi.py到本目录下。

Python开发入门与实战15IIS部署

15.4. IIS创建站点

我们把项目文件拷贝到IIS 的wwwroot目录下,创建IIS站点,如下图:

Python开发入门与实战15IIS部署

笔者注:IIS的项目发布目录最好在wwwroot下,可以避免很多windows权限问题。

15.5. 添加处理程序映射

IIS 管理器中选择站点mysite,选中该站点的“处理程序映射”设置。

Python开发入门与实战15IIS部署

在“处理程序映射”设置中,右键选择“添加模块映射”菜单。

Python开发入门与实战15IIS部署

Python开发入门与实战15IIS部署

如上图,输入完配置信息后,点击“确定”按。系统会弹出如下提示框:

Python开发入门与实战15IIS部署

“要为此可执行文件创建 FastCGI 应用程序吗? 单击“是”将此项添加到 FastCGI 集合中,以及允许此可执行文件作为 FastCGI 应用程序运行。”

点击[是]

15.6. 修改我们的web.config文件只保留如下代码

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated web.config for Microsoft Azure. Remove this comment to prevent
     modifications being overwritten when publishing the project.
-->
<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
    <add key="PYTHONPATH" value="%ROOTDIR%" />
    <add key="DJANGO_SETTINGS_MODULE" value="mysite.settings" />
  </appSettings>

</configuration>

完成部署,在IIS管理器中重新启动mysite站点。

15.7. 访问发布的网站

Python开发入门与实战15IIS部署

我们访问基于模板的页面,页面是能正常访问的,但是访问基于Extjs的inventoryQueryExtjs页面,页面不能正常显示。这是Extjs相关的静态文件目录没有正常部署的缘故。

15.8. 静态文件部署

根据setting.py静态文件目录的配置,我们项目目录下创建一个static的文件目录

Python开发入门与实战15IIS部署

在cmd命令窗口进入到项目目录下,执行命令:

python manage.py collectstatic

Python开发入门与实战15IIS部署

然后,在iis管理器mysite站点下添加static虚拟目录:

Python开发入门与实战15IIS部署

注:最后删除虚拟目录处理程序映射中的Django handler处理器。

Python开发入门与实战15IIS部署

我们再访问网站的inventoryQueryExtjs页面,页面正常显示,现在完成了示例网站的IIS发布工作。

Python开发入门与实战15IIS部署

15.9. 小结

本章节我们完成了在IIS平台部署我们的django项目,采用的是“处理程序映射”的Fast CGI来实现django项目的解析处理。下一章节我们将描述如何部署django 的windows apache平台。

更多相关文章
  • 作者:田逸([email protected]) 按:这是一篇命题作文,是应一位同行兄弟的邀请而作此文.他告诉我,目前他跟开发的关系有些僵持,希望能我能发表一些看法.尽管我不一定能给出好的建议,但我觉得这个事情应该具有一定的普遍性,于是就答应写一篇文字,权作抛砖引玉. 总所周知,一个网站或者一个项目要创建和运 ...
  • 写这个是因为很长时间以来,碰到过很多次这个问题,但都没当回事,这次又碰到了这个老问题,无奈百度了一圈儿未果,身边又没有大牛可以请教,就自己先“总结”了一套方法,一来给自己记录,二来如果碰巧能有朋友看到并为他解决了同样的困扰我将感到很爽.     起因:凡是网络程序,Coder似乎不可避免要碰到,你的 ...
  • 中国的交通法规定红绿色盲不能驾车,理由是他们可能无法准确辨别红绿灯.针对这一问题,我认为可以通过一个装置来辅助他们识别红绿灯. 这个装置的原理: (1)这个装置基于raspberry pi 微型电脑,它携带着一个摄像头和一个小屏幕. (2)摄像前朝向开车的方向.它随时捕捉红绿灯的影像,一旦发现红绿灯 ...
  • 1.正确区分函数和方法: 面向对象的语言叫做方法,面向过程的语言叫做函数,两者的意义是一样的,只是叫法不同.java是面向对象的语言,所以用方法. 2.方法的定义: 就是有名字的代码段 3.方法的目的: 就是为了代码的重用. 相同的类型操作不容重复的写代码.如果在代码中,重复的写了很多相似的代码,代 ...
  • 面对突如其来的疾病,医院和病人常常措不及防,时间上的延误常常造成病人丧生.在未来,科技可能会扮演医疗先知的角色,将这种悲剧发生的几率降至最低. 据商业周刊的报道,卡罗莱纳州的医疗系统开始利用大数据进行高危病人的医疗防范,它们针对高风险病人将200万人的用户数据融入一套算法,评估发病几率,从而实现在病 ...
  • 最近看到很多大牛发sqlmap的视频教程. 然后偶就屁颠屁颠滚去下了一个,然后尼玛,一连从头看到尾......各种科普啊,看视频有点浪费时间. 各位别去被坑爹了,来个sqlmap 简易教程算了,何必浪费看视频的时间. sqlmap 再牛逼也就是个python的脚本,脚本再牛逼也得有–help -hh ...
一周排行
  • 在Azure当中有地缘组的概念(http://maomaostyle.blog.51cto.com/0531/1585696),之前的博文也提到过,这是一种提高“性能”或者说是尽可能减少系统间延迟的手段,是出于性能保 ...
  •           在 linux系统 下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现" command not found "的提示内容.如果每次都到安装目标文件夹内,找到可执行文 ...
  • 实验拓扑图: 一.安装SCVMM 2012 R2 1.装入SCVMM 2012 R2安装光盘镜像,选择"安装": 2.选择"VMM管理服务器"和"VMM控制台&quo ...
  • www.2cto.com:好多各国老外在搞,不知道国内比较多还是每个国家都有.跨国业务尚需多渠道确认才好. 一个由外籍人员组成的团伙,利用黑客技术侵入外贸企业邮箱掌握业务往来,然后注册一个与企业邮箱相似的作案邮箱进行 ...
  • 比尔•盖茨对<连线>杂志说:如果他还是个少年,他就会做生物黑客了.“如果你想用伟大的方式改变世界,就从生物分子开始吧.” ——<想当厨子的生物学家是个好黑客> 百科:忆阻器 忆阻器(memri ...
  • 继去年全民DIY大赛时,我们对几款大赛奖品天线进行了600米测试,由于时间关系和环境约束,只是简单的对比测试了各款天线的信号强度效果.近日我们对市售常见的几款高中低增益的专业平板天线进行了测试,鉴于环境对天线的效果有 ...
  • 因为写的太好了,所以就转载了!http://www.jb51.net/article/40807.htm 以下是对Linux中top命令的用法进行了详细的介绍,需要的朋友可以过来参考下   查看多核CPU命令mpst ...
  •   PATH环境变量里是按顺序查找的,如果电脑里只有一个jdk,放哪都一样,有多个放前面的会优先.   一般是放在最前面吧,以免其他在path中的程序需要用到Java环境而由于在JAVA_PATH之前被读取导致程序不 ...
  • http请求的get/post并不是难事,只是silverlight中一切皆是异步,所以代码看起来就显得有些冗长了,下面这个HttpHelper是在总结 园友 的基础上,修改得来: 1 namespace SLAwb ...
  • 首先感叹下矩阵的强大,真心强大! 然后推荐下 Matrix67 大神的神作:十个利用矩阵乘法解决的经典题目 大神说的很明白了,我觉得再说啥都多余了,请直接去大神那里看吧,我只是刷了几道简单的入门题,贴下代码,和大家交 ...