环境: 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操作系统。