环境:Windows 7操作系统, IIS python3.6.1 django 1.11.14
1.新建一个django项目
这里不会创建项目的可以参考我之前的三篇博客,里面讲的很详细(从零基础搭建Python环境和创建Django项目),当然我的博客里面用的是VS2015来创建项目,直接命令行django-admin创建也是一样的。
- python的安装 https://blog.csdn.net/qianbin3200896/article/details/81098498
- VS2015的安装 https://blog.csdn.net/qianbin3200896/article/details/81103532
- django的安装和简单使用 https://blog.csdn.net/qianbin3200896/article/details/81114334
这里注意一点:确保python的安装路径中没有中文,没有空格。 比如我的安装路径是 D:\toolplace\python3.6.1
新建的项目名叫 MyCeShi ,创建的地址在 D盘code文件夹下。
运行下项目保证没有错误。(这里我为了好看用了bootstrap前端框架,不用也可以的)
python manage.py runserver 127.0.0.1:8000
网站效果如下:
以上我们采用的是django默认的开发服务器来渲染网站,项目正式上线的话需要部署在生成服务器上才能满足良好的并发运行需求。下面我们开始讲解如何将django项目部署到生产服务器上。
2.配置IIS服务器
IIS是Windows推出的服务器,在Windows服务器下进行项目部署采用IIS是比较方便的,操作也比较简单。
2.1 安装IIS。
控制面板—程序和功能—打开或关闭windows功能——Internet 信息服务。然后按照下图进行勾选
然后控制面板中找到管理工具,选择
双击打开。
3. 安装Python Web的生产环境包wfastcgi
为了将django项目能够部署到IIS上需要安装额外的一个Python包。
以管理员身份打开命令行工具进行安装(千万记住要用管理员身份!!!)
输入
pip install wfastcgi
由于我的电脑安装的是Python3.6.1版本,因此自动给我安装的是wfastcgi-3.0.0版本。
安装完成后需要启动wfastcgi
我们输入下面的命令
wfastcgi-enable
得到
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\windows\system32>wfastcgi-enable
已经在配置提交路径“MACHINE/WEBROOT/APPHOST”向“MACHINE/WEBROOT/APPHOST”的“sy
stem.webServer/fastCgi”节应用了配置更改
"D:\toolplace\python3.6.1\python.exe|D:\toolplace\python3.6.1\lib\site-packages\
wfastcgi.py" can now be used as a FastCGI script processor
C:\windows\system32>
这里说明安装成功了 记住冒号中的一串字符串,复制下来待会有用
D:\toolplace\python3.6.1\python.exe|D:\toolplace\python3.6.1\lib\site-packages\
wfastcgi.py
3. 配置IIS和django网站
我们在Django项目的根目录下创建一个web.config的文件,里面内容如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python FastCGI"
path="*"
verb="*"
modules="FastCgiModule"
scriptProcessor="D:\toolplace\python3.6.1\python.exe|D:\toolplace\python3.6.1\lib\site-packages\wfastcgi.py"
resourceType="Unspecified"
requireAccess="Script"/>
</handlers>
</system.webServer>
<appSettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
<add key="PYTHONPATH" value="D:\code\MyCeShi\MyCeShi" />
<add key="DJANGO_SETTINGS_MODULE" value="MyCeShi.settings" />
</appSettings>
</configuration>
这里对照着自己的网站,修改三处地方替换即可
- scriptProcessor用刚才得到的字符串代替
- <add key="PYTHONPATH" value="D:\code\MyCeShi\MyCeShi" /> 这里的value要定位到当前的项目根目录(跟manage.py同目录)
- <add key="DJANGO_SETTINGS_MODULE" value="MyCeShi.settings" /> 这里写入app的名字
然后启用IIS新建网站,为了不冲突采用8000端口
浏览网站会得到如下结果
说明可以访问了,但是明显发现CSS等静态文件没有访问到。我们接着做如下修改
首先对我们的django项目进行静态文件资源迁移,在项目根目录下输入如下命令
python manage.py collectstatic
结束后项目根目录下会多出一个static文件夹
然后我们在static文件夹中添加一个web.config文件,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="Python FastCGI" />
</handlers>
</system.webServer>
</configuration>
这里注意 remove name中的值必须与之前的web.config中的一致
刷新网页就可以出现最终的页面。到这里本地部署完成。
为了可以局域网访问,修改settings.py文件
将 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['*',] 即可。让网站重启下即可正常局域网访问(到这里如果手机也在一个无线路由器下面的话可以试试手机浏览网页的效果)。因为我采用的VS2015创建的django项目自带了bootstrap前端框架,所以做出来的网页也很适合手机访问(自适应)。手机浏览效果图如下:
有了上面的基础,接下来我们可以开始进行云服务器部署,使得我们的网页外网可以访问。这里我使用的是腾讯云服务器,windows操作系统。腾讯云服务器相关购买和使用可以参考我之前的博客: https://mp.csdn.net/postedit/80855313