本文章参考书籍:钱彬老师《python web开发从入门到实践》
采用IIS服务器部署相比django提供的开发者服务器具有更好的并发访问能力,性能更加稳定。
一、Python WSGI部署原理
python web项目的部署的基本原理,是基于一种WSGI的框架协议。
WSGI协议主要包括Web服务器和应用服务器两部分。
(1)Web服务器:即HTTP服务器,按照HTTP接受用户HTTP请求并提供并发访问,调用Web应用处理业务逻辑。
(2)Python Web应用:应用程序接受由服务器转发的request,处理对应的请求,并将处理结果返回服务器。
本文章采用IIS+Django的方式构建和部署Web项目。
二、准备部署环境
(1)cmd终端输入:
pip freeze>requirements.txt //搜集python依赖包及对应版本号,生成txt文件
(2)在需要部署项目的服务器上安装依赖包(pip)
pip install -r requirements.txt //文件requirements.txt为上一步cmd命令中生成
这是我自己的python依赖包:(依自己需求安装依赖包)
三、安装和配置IIS
打开windows的”控制面板”→”程序和功能”→”打开或关闭Windows功能”,找到Internet Information Services(Internet 信息服务),按照下图进行勾选。
四、开放端口
我将自己web应用访问端口设置为了8001端口,设置步骤如下。
(1)打开windows的”控制面板”→”系统和安全”→”Windows Defender防火墙”,单机进入防火墙配置界面。然后界面左侧进入高级设置。
(2)进入高级安全Windows Defender防火墙配置界面,选中左侧”入站规则”栏目,在选中右侧操作栏的”新建规则”选项。弹出的向导中选择”端口(o)”。
(3)点击下一步,输入自己要设的端口号(我设置的8001),然后一直点下一步,命名规则,完成。就可以在入站规则看到这个规则。
(4)在浏览器地址输入localhost访问IIS测试,如果出现以下页面,表示安装成功
五、本地部署
(先放文件夹,需要注意的有,在项目根目录和static文件夹中各有一个web.config文件。)
第四部分正文开始:
(1)安装python依赖包wfastcgi,并启动(需管理员权限)
pip install wfastcgi
//启动wfastcgi,, 停止命令为:wfastcgi-disable
wfastcgi-enable
已经在配置提交路径”MACHINE/WEBROOT/APPHOST”向”MACHINE/WEBROOT/APPHOST”的”system.webServer/fastCgi”节应用了配置更改
“d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py” can now be used as a FastCGI script processor
(2)配置web.config文件
为了能够让IIS服务器准确的运行项目,需要配置和设定一些参数,包括项目路径、配置文件路径、解析器等。在django项目文件中创建web.config文件(和manage.py在同一文件夹)。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webserver>
<handlers>
<add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptprocessor="d:\python395\python.exe|d:\python395\lib\site-packages\wfastcgi.py" resourcetype="Unspecified" requireaccess="Script">
</add></handlers>
</system.webserver>
<appsettings>
<add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()">
<add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6">
<add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings">
</add></add></add></appsettings>
</configuration>
有三个参数需要注意:
1、scriptProcessor中冒号部分为前面对应的Python和wfastcgi解释器核心脚本路径。
2、
3、
1、进入到static文件夹中创建第二个个web.config文件。该文件用于将项目所有的静态资源文件css,js,img等全部导入到根目录下的static文件夹。方便服务器查找静态文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webserver>
<!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
<handlers>
<remove name="Python FastCGI">
</remove></handlers>
</system.webserver>
</configuration>
2、打开项目配置文件setting.py
将语句”STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘static’)]”替换为 “STATIC_BOOT = os.path.join(BASE_DIR, ‘static’)”。
//原语句注释掉
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
//现语句
STATIC_BOOT = os.path.join(BASE_DIR, 'static')
cmd终端进入django项目根目录:执行命令
python manage.py collectstatic
(4)IIS创建网站
“控制面板”→”系统和安全”→”管理工具”→”Internet Information Services (IIS)管理器”,打开后左侧上方选中网站栏目,右键选择添加网站进入配置。
此时配置完成:访问http://127.0.0.1:8001即可进入web应用。
六、问题
(1)[Errno 13] Permission denied: ‘C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6\templates\ShouYe\Login.html’
解决方法:找到django项目文件夹,右键属性,选择安全,编辑用户和组,添加用户”Everyone”并选择完全控制。选择应用。
(2)如果在根目录中没有****.settings问件,会弹出缺少MODULE,
Original: https://blog.csdn.net/ZHY_ERIC/article/details/121243820
Author: ZHY_ERIC
Title: 基于windows系统IIS部署Django项目
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734586/
转载文章受原作者版权保护。转载请注明原作者出处!