windows系统IIS部署Django项目的实践

 更新时间:2022年03月10日 10:14:55   作者:ZHY_ERIC  
采用IIS服务器部署相比django提供的开发者服务器具有更好的并发访问能力,性能更加稳定,本文主要介绍了windows系统IIS部署Django项目的实践,具有一定的参考价值,感兴趣的可以了解一下

采用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  

 输出:“python路径” 和 “wfastcgi解释器核心脚本路径”,用"|"隔开

已经在配置提交路径“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"/>
        </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" />
    </appSettings>
</configuration>

                有三个参数需要注意:

                1、scriptProcessor中冒号部分为前面对应的Python和wfastcgi解释器核心脚本路径。

                2、<add key="PYTHONPATH" value="C:\Users\yangz\Desktop\ZC_System-V20.6_11-09\ZC_System-V20.6" />,  (这里跟manage.py同一目录)

                3、<add key="DJANGO_SETTINGS_MODULE" value="ZC_System.settings" />,这个.settings文件一开始我配置的时候也没有,可以自己配置。没有该文件的同学可以参考下面链接自行配置。

配置"DJANGO_SETTINGS_MODULE"

       (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"/>
        </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,

配置***.settings文件

到此这篇关于windows系统IIS部署Django项目的实践的文章就介绍到这了,更多相关IIS部署Django项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Python设计模式行为型观察者模式

    Python设计模式行为型观察者模式

    这篇文章主要介绍了Python设计模式行为型观察者模式,观察者模式即Publish Subscribe Pattern,定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者,是它们能够自动更新自己,下面和小编一起进入文章学习详细内容吧
    2022-02-02
  • Python高斯消除矩阵

    Python高斯消除矩阵

    今天小编就为大家分享一篇关于Python高斯消除矩阵,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python中的type,元类,类,对象用法

    python中的type,元类,类,对象用法

    这篇文章主要介绍了python中的type,元类,类,对象用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python闭包与引用以及需要注意的陷阱

    python闭包与引用以及需要注意的陷阱

    这篇文章主要介绍了python闭包与引用以及需要注意的陷阱,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-09-09
  • python 文本单词提取和词频统计的实例

    python 文本单词提取和词频统计的实例

    今天小编就为大家分享一篇python 文本单词提取和词频统计的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)

    Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)

    这篇文章主要介绍了Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • 利用Python自动化生成爱豆日历详解

    利用Python自动化生成爱豆日历详解

    openpyxl,一个能读取和修改Excel电子表格的Pyhton模块,可以实现自动化处理表格信息,摆脱无趣无味。本文将利用openpyxl和calendar库,实现自动化生成爱豆日历,感兴趣的可以了解一下
    2022-05-05
  • Python调用golang代码详解

    Python调用golang代码详解

    这篇文章主要给大家介绍了关于Python调用golang代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Python数据分析matplotlib设置多个子图的间距方法

    Python数据分析matplotlib设置多个子图的间距方法

    今天小编就为大家分享一篇Python数据分析matplotlib设置多个子图的间距方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 解决Django提交表单报错:CSRF token missing or incorrect的问题

    解决Django提交表单报错:CSRF token missing or incorrect的问题

    这篇文章主要介绍了解决Django提交表单报错:CSRF token missing or incorrect的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03

最新评论