环境: VS2015 IIS python3.6.1 django 1.11.14

打开VS2015,新建一个django项目。

这里注意一点:确保python的安装路径中没有中文,没有空格。 我的安装路径 D:\toolplace\python3.6.1


、新建的项目名叫 MyCeShi ,创建的地址在 D盘code文件夹下


右键Python Environments 创建虚拟环境 env_MyCeShi


这里如果是win10系统,应该没有问题。我后来在win7系统上进行测试的时候发现无法创建虚拟环境,只能在全局环境中安装各种包了。之前一直出现下面的错误,不知道哪位可以帮着解决告知我下。

...Installing setuptools, pip...done.

install_wheel(to_install, py_executable, search_dirs)

File "D:\toolplace\python3.6.1\lib\site-packages\virtualenv.py", line 961, in install_wheel

'PIP_NO_INDEX': '1'

File "D:\toolplace\python3.6.1\lib\site-packages\virtualenv.py", line 903, in call_subprocess

% (cmd_desc, proc.returncode))

OSError: Command D:\code\MyFirstWeb\M...2\Scripts\python.exe -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools pip failed with error code 1

Virtual environment was not created at 'D:\code\MyFirstWeb\MyFirstWeb\env2'. Exit code: 1

System.InvalidOperationException: Virtual environment was not created at 'D:\code\MyFirstWeb\MyFirstWeb\env2'

在 Microsoft.PythonTools.Project.VirtualEnv.d__2.MoveNext()

--- 引发异常的上一位置中堆栈跟踪的末尾 ---

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

在 Microsoft.PythonTools.Project.VirtualEnv.d__5.MoveNext()

--- 引发异常的上一位置中堆栈跟踪的末尾 ---

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

在 Microsoft.PythonTools.Project.PythonProjectNode.d__148.MoveNext()

--- 引发异常的上一位置中堆栈跟踪的末尾 ---

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

在 Microsoft.PythonTools.Project.AddVirtualEnvironmentOperation.d__10.MoveNext()

上面这个错误不管,我们还是可以通过在全局环境中添加包来实现。继续安装django1.11.14然后试着运行下保证没有错误。


下面开始进行正式的部署。

1 安装IIS。

控制面板—程序和功能—打开或关闭windows功能——Internet 信息服务。然后按照下图进行勾选


然后控制面板中找到管理工具,选择


双击打开。

2 安装wfastcgi

右键选择install pyhton package 然后输入wfastcgi。然后自动安装wfastcgi-3.0.0版本。

安装完成后


各个包的实际路径如下图


以管理员身份运行cmd(很重要,一定要用管理员身份运行),然后输入

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网站

由vs2015新建的项目运行后会在项目根目录下创建一个web.config的文件,用以下代码替换

修改三处

scriptProcessor用刚才得到的字符串代替 这里的value要定位到当前的项目根目录(跟manage.py同目录) 这里写入app的名字

然后启用IIS新建网站,为了不冲突采用8000端口


浏览网站会得到如下结果


说明可以访问了,但是CSS等静态文件没有访问到。我们接着做如下修改

首先VS2015运行迁移静态文件命令:右键项目——python——Collect Static Files

结束后项目根目录下会多出一个static文件夹


然后我们在static文件夹中添加一个web.config文件,但是文件内容修改如下:

这里注意 remove name中的值必须与之前的web.config中的一致


刷新网页就可以出现最终的页面。到这里本地部署完成。


为了可以局域网访问,修改settings.py文件


将 ALLOWED_HOSTS = [] 改为 ALLOWED_HOSTS = ['*',] 重新编译下。然后再将根目录下的web.config

按照刚才的方式进行修改并保存。最后让网站重启下即可正常局域网访问。因为vs创建的django工程自带了bootstrap前端框架,所以做出来的网页也很适合手机访问(自适应)。手机浏览效果图如下:


有了上面的基础,接下来我们可以开始进行云服务器部署,使得我们的网页外网可以访问。这里我使用的是腾讯云服务器,windows操作系统。