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 ...
一周排行
  • 之前有一个工作是到服务器上去一串文字下来,很简单的操作,但是需要重复50次左右,每次花费大概三分钟,一遍下来两个多小时就进去了.因此就做了这个工具自动抓取数据. 工具主要做三件事情:登陆,下载,截取. 登陆部分由于服 ...
  • 先大致介绍一下概率加密 (Probabilistic Encryption),不用严格的学术定义的话,可以这样说:   概率加密是指具有以下性质的公钥加密算法:对于相同的明文,生成的密文随机变化.   最基本的 RS ...
  • 算法-排序之快速排序 快速排序得名于实际应用的高效率,它几乎是最快的排序算法,入选20世纪十大算法之列.快速排序体现了计算机设计的“分治法”思想,核心是将整个问题分割成多块相对容易处理的小问题,分而治之.利用分治法原 ...
  • 1. [代码]php代码     1 $array = array( 2   'username'=>'杨铸', 3   'password'=>'123456', 4   'user_id'=>1 ...
  • 题目地址:POJ 3250 初学单调栈.多校和网络赛已经碰到两次了. 单调栈的原理简单的不能再简单了..就是让栈里的元素从栈顶到栈底呈单调性. 比如说递增单调栈. 每次放进一个数的时候,如果栈顶的数小于要放的数,就把 ...
  • 第一:你有什么: 第二:你要什么: 第三:你能放弃什么." 有什么,评价自己现状: 要什么,明确自己目标: 最难的是,自己不知道或不敢放弃什么,这点恰恰能决定自己想要实现的目标是否能实现.没有人可以不放弃就 ...
  • 缘起1像素,改与不改?没人做设计,软件也可以用?当设计师开始写代码,程序员开始尝试设计的时候,你在做什么?优秀的设计师和开发者--沟通与相互理解致我们亲爱的开发者致自己--为1像素努力的设计师 无意挑起所谓的职位之间 ...
  • 网上关于Asp.net验证码的示例是在不少,前一段时间我发布的<51aspx实现的Asp.net无刷新中文验证码>受到了广大网站的转载,但是关于其中无刷新及波形扭曲的文章寥寥无几,示例也几乎难寻,于是我搜 ...
  • alter table dbo.Sys_PowerTeamForUser add constraint FK_Sys_User_Sys_PowerTeamForUser foreign key (Sys_UserID ...
  • 网络融合是必然趋势.现在无线和有线的融合,2G-NG的融合都是有目共睹的.那么网络融合是当下最热门的话题之一.无线网络开始兴起,但有线网络还是主题,怎样使两网相容就是讨论的主要问题了.下文就将有线和无线网络整合需要的 ...