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 ...
一周排行
  • Evernote会倒掉?怎么可能?这家公司2012年时就已经进入独角兽聚乐部,口碑很好,付费率不错,海外市场风生水起--但即使如此,聪明的投资人还是在2012年下半年,抛售了Evernote的股份,用真金白银投了票. ...
  • 数据是企业数据中心的重要资产,获取并维护高质量数据,对高效的IT和业务运营至关重要.面对复杂度不断增加的业务数据,如何全面保证数据质量?借助完备的Informatica数据质量平台,无论何时何地,您都可以在整个企业内 ...
  • 本文将以实例分析的方式简单介绍iptables实现防火墙,源/目的地址转换,iptables拓展模块,以及通过重新编译内核凭借l7-filter模块过滤QQ.迅雷等应用程序通信等内容. iptables是linux中 ...
  • 对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题,比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编程来说十分重要.A ...
  • 最近OJ及相关的网站打开异常的慢,简直崩溃,一直没找着原因! 进入数据库服务器,进到mysql里,用show processlist命令查看一下,发现有很多的unauthenticated user google了一 ...
  • window.location.href='http://www.51cto.com/edm/developedm/edm50127.html';
  • 代码如下: 不知道等腰直角三角形怎样判断? #include <stdio.h> main() { int a,b,c; printf("please input a,b,c:"); ...
  •          Stopwatch 实例 [java]  package net.baisoft.stopwatch;    import java.util.ArrayList;  import java.uti ...
  • http://wenku.baidu.com/link?url=oR2CQnHVQHacEG1JYmdYvo_D3dHJAEW6FrfpE7mQO7UonoOWbD6hNaPDrKtPgH_KhnI65cQW4qp7 ...
  • 代码地址:http://lzmtw.cnblogs.com/archive/2005/10/24/261038.html示图1示图2说明:测试中用到的身份证号码仅作参考,没别的含义.由于区划码是变动的,旧的身份证的区 ...