基于IIS的Windows系统Django项目本地部署

参考:

1.

基于Windows平台的Django本地部署和腾讯云服务器上部署(1)_如何在服务器上发布部署django程序 csdn-CSDN博客

2.Windows server iis部署Django详细操作 - Django中文 - 博客园 (cnblogs.com)

3.在IIS中部署python+Django项目时出现“Http 错误500.0”无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor的一个解决办法,供参考_无法在<fastcgi>应用程序配置中找到<handler> scriptprocessor-CSDN博客

目录

零、注意事项

一、系统路径及文件

1.系统路径

2.系统正常运行

二、配置IIS服务器

1.安装iis

2.打开iis

三、wfastcgi安装打开

1.pip安装wfastcgi

2.启动wfastcgi

四、项目内文件配置

1.web.config

2.在iis中配置网站

3.打开网页

4.静态文件加载

5.成功打开

五、记录性备注


零、注意事项

此处仅为本人问题记录,不做通用性指导。我进行了两台电脑的部署,总的来说建议设置路径无空格的python环境,原因来源于经历,如下。

第一台环境在d盘,路径无空格,到 四、4即可完成,1.中途出现有包但是提示找不到的问题,按照报错2的方法解决(虽然报错2用这个方法未解决)2.映射问题&css样式,后文也有解决记录

第二台环境在c盘,是python默认环境,路径有空格,但是始终轮着提示报错1\2\3,很无奈,后面在d盘重新加了一个环境,就解决了,真好,能跑就行。

一、系统路径及文件

1.系统路径

D:\projects\project\map,后文或称【根目录】

manage.py,static文件夹均在如上的map目录下

2.系统正常运行

在pycharm中用terminal打开,应用 python manage.py runserver可以正常打开运行系统

二、配置IIS服务器

在window对应窗口进行iis对应配置

1.安装iis

控制面板—程序—程序和功能—打开或关闭windows功能——Internet 信息服务

点击【确定】,如下图显示即可,点击【关闭】

(以下本文未在此时测试:

根据参考博客2,安装完后可以在浏览器输入 127.0.0.1 测试效果,如下图

2.打开iis

【控制面板】-【管理工具】

进去之后找到 IIS,双击打开

三、wfastcgi安装打开

说明:wfastcgi是一个python库,使用pip安装

1.pip安装wfastcgi

使用【管理员】打开【命令提示符】(Windows PowerShell)

(douban镜像可能不行,设置清华源为默认后获得成功:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple)

2.启动wfastcgi

安装完成后需要启动wfastcgi,输入wfastcgi-enable

记录下此时 wfastcgi.py 的路径 (D:\projects\venv\Scripts\python.exe|D:\projects\venv\lib\site-packages\wfastcgi.py),后文需要。

四、项目内文件配置

1.web.config

在根目录下创建web.config,内容如下

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\projects\venv\Scripts\python.exe|D:\projects\venv\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:\projects\project\map" />
            <add key="DJANGO_SETTINGS_MODULE" value="map.settings" />
        </appSettings>
    </configuration>

根据自己的项目调整如下三项

(1)scriptProcessor :设置为上面保存的路径

(2)<add key="PYTHONPATH" value="D:\projects\project\map" />

设置为根目录下一级,该级目录下有setting文件

(3) <add key="DJANGO_SETTINGS_MODULE" value="map.settings" />

项目名.settings

2.在iis中配置网站

在打开的IIS管理器中,添加网站

【网站名称】自行设置,看需求,目前没发现影响

【物理路径】设置同  四-1-(2)

【端口】本人想用8001,参考教程用的8000

(屏幕小的笔记本电脑,看不到确定键,可以填好回车)

3.打开网页

理论上应该可以打开,然后看到无css的html网页,但我的报错了

(1)报错1

参考链接3,操作如下:

①进入【处理程序映射】

路径前后需要有 双引号(另一半在后面截图未截到),确定后,web.config文件中,引号会对应变为&quot;之前这样网页就正常了

4.静态文件加载

(1)增加虚拟目录

添加虚拟目录时,别名放与settings里设置的一致,比如'static'(参考教程2说的,但我不知道setting指哪个),物理路径就是静态资源的实际目录。

(2)static文件夹下创建web.config

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
      <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
      <handlers>
        <clear/>
   <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
     </handlers>
   </system.webServer>
</configuration>

5.成功打开

(1)localhost访问

在本机网页输入 http://localhost:8001/ 可以成功访问了,

(2)ip访问

也可以在局域网内通过ip链接

通过cmd输入ipconfig,找到自己电脑的 IPV4地址,以下是示例:

替换localhost,可以在本机&局域网内访问 http://192.168.0.108:8001,能ping通部署项目的机器,理论上可以访问。

如果访问不了,关掉部署了项目的机器的防火墙,再尝试。

关闭防火墙方式如下:

(根据局域网的不同可以选择性关闭,不知道怎么选,需要自己尝试,或者直接都关闭。

学校云桌面,尝试中只关域网络即可,为保险起见,可以都关闭,或者展示前测试一下)

五、记录性备注

以下问题解决方式不正确,仅作记录。建议为项目单独创建虚拟环境,而且个人感觉路径中最好不好有空格,我本来使用的是安装的默认环境,但是总是出现下面的问题,但是后面在D盘重新创建虚拟环境(同时路径无空格)后,就可以显示了,原因不明,只能说尽量避免吧

(1)报错1

就是上面的报错,但是这里记录不正确的解决思路,仅作常识性记录

检查路径是否未对应(本人在本机部署时,与其他机器路径混乱,找了很久的问题。)

原因解释:

路径包含空格,需要前后都包含双引号,在【编辑模块映射】中加上,即可在web.config中对应生成,解决500问题

(2)报错2

①检查系统在pycharm中能否正常运行python manage.py runserver,发现系统本身没问题

②不优秀的解决方式:

在终端uninstall该模块(此处为django,后可能有别的模块有问题)

在根目录下创建requirements.txt,将当前django及版本写入,如 Django==4.1.7

在终端定位到根目录,运行文件:pip install -r requirements.txt,重新下载module,然后运行,就解决了django问题(这种简单的流程之后,提示别的问题,等于当前问题解决了)

③总结:原因不明,卸载再安装就可以了,很离谱不太懂真的谢,而且如果批量卸载,批量用txt好像也不成功,就要一个一个,就是神金。

(3)报错3

解决

双击进入之后,发现在 python和wfastcgi的对应中,有未加引号的对应关系,删除即可,配图是删除后的。

(4)报错4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/763965.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于大语言模型的本地知识库问答(离线部署)

一、前言 知识库问答是一种应用广泛的系统&#xff0c;可以在许多领域发挥重要作用。不过以往的系统通常是基于固定规则、相似度检索或者seq2seq模型&#xff0c;这类系统开发成本较高、修改也较为麻烦&#xff0c;尤其在数据准备过程需要耗费大量精力。 而大语言模型&#x…

事务的影子拷贝-系统架构师(二十)

1、&#xff08;重点&#xff09;企业信息集成按照组织范围分为企业内部的信息集成和外部信息集成。在企业内部信息集成中&#xff0c;&#xff08;&#xff09;实现了不同系统之间的互操作&#xff0c;使的不同系统之间能够实现数据和方法的共享。&#xff08;&#xff09;实现…

基于Java的外卖点餐系统设计与实现

作者介绍&#xff1a;计算机专业研究生&#xff0c;现企业打工人&#xff0c;从事Java全栈开发 主要内容&#xff1a;技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流&#xff08;SCI论文两篇&#xff09; 上点关注下点赞 生活越过…

Linux\ubuntu系统下载中文输入法

目录 1 系统图形化安装 1.1 打开设置 1.2 选择语言 1.3 选择简体中文 1.4 再次打开设置 1.5 选择中文 1.6 退出即可安装成功 本文主要记述在ubuntu1806下安装中文输入法的过程&#xff0c;其实Ubuntu上可以安装的中文输入法有很多种&#xff0c;可以直接通过系统安装&am…

周界入侵自动监测摄像机

当今&#xff0c;随着科技的快速发展&#xff0c;周界入侵自动监测摄像机作为安全监控领域的重要创新&#xff0c;正逐渐成为各类场所安全防范的核心设备。这种摄像机以其先进的监测和预警功能&#xff0c;有效提升了安全管理的效率和实时响应能力&#xff0c;被广泛应用于各类…

什么是屎山代码?

为什么说再厉害的程序员&#xff0c;也怕屎山代码&#xff1f; 首先&#xff0c;屎山代码不是指的一种开发语言&#xff0c;而是对庞大项目的一个别称。 常言道&#xff0c;屎山传万代&#xff0c;代代不吱声。每次传承都会遗留大量问题&#xff0c;接手的人一般都不敢动代码&a…

JSONpath语法怎么用?

JSONPath 可以看作定位目标对象位置的语言&#xff0c;适用于 JSON 文档。 JSONPath 与 JSON 的 关系相当于 XPath 与 XML 的关系&#xff0c; JSONPath 参照 XPath 的路径表达式&#xff0c;提供了描述 JSON 文档层次结构的表达式&#xff0c;通过表达式对目标…

双端队列广搜——AcWing 175. 电路维修

双端队列广搜 定义 双端队列广搜&#xff08;Breadth-First Search with a Deque&#xff09;是一种图或树的遍历算法变体&#xff0c;它利用了双端队列&#xff08;Deque&#xff0c;全称Double Ended Queue&#xff0c;允许在其两端进行插入和删除操作&#xff09;作为数据…

vision mamba-yolov8:结合Vmamba的yolov8目标检测改进实现

1.vision mamba结构与原理 Mamba成功的关键在于S6模型&#xff0c;该模型为NLP任务设计&#xff0c;通过选择性扫描空间状态序列模型&#xff0c;将二次复杂度降低至线性。但由于视觉信号&#xff08;如图像&#xff09;的无序性&#xff0c;Mamba的S6模型不能直接应用&#xf…

20240701给NanoPi R6C开发板编译友善之臂的Android12系统

20240701给NanoPi R6C开发板编译友善之臂的Android12系统 2024/7/1 14:19 本文采取这个模式编译&#xff1a;11.6.3 编译Android Tablet版本(首次编译) echo "ROCKCHIP_DEVICE_DIR : device/rockchip/rk3588/nanopi6" > .rockchip_device.mk # export INSTALL_GAP…

给小程序接入AI服务之后,我的睡后收入又增加了

自从本人写了《[从零开始三天学会微信小程序开发]》教程以来&#xff0c;不断有人加我&#xff0c;一起交流微信小程序开发的事情&#xff0c;很让人开心。 也有一些人和我说&#xff0c;现在已经是AI时代了&#xff0c;怎么还用这种固定内容的模式呢&#xff1f;确实是的&…

K8S 集群节点缩容

环境说明&#xff1a; 主机名IP地址CPU/内存角色K8S版本Docker版本k8s231192.168.99.2312C4Gmaster1.23.1720.10.24k8s232192.168.99.2322C4Gwoker1.23.1720.10.24k8s233&#xff08;需下线&#xff09;192.168.99.2332C4Gwoker1.23.1720.10.24 1. K8S 集群节点缩容 当集群中有…

ROS2使用Python开发动作通信

1.创建接口节点 cd chapt4_ws/ ros2 pkg create robot_control_interfaces --build-type ament_cmake --destination-directory src --maintainer-name "joe" --maintainer-email "1027038527qq.com" mkdir -p src/robot_control_interfaces/action touch…

【微服务】微服务之Feign 与 Ribbon

文章目录 强烈推荐引言优点Feign示例什么是Ribbon&#xff1f;Ribbon 的优点Netflix Feign 和 Ribbon整合Feign 与 Ribbon 的关系Feign 与 Ribbon 结合使用的示例配置文件&#xff08;application.yml&#xff09;说明&#xff1a; Feign 与 Ribbon 结合使用的应用场景1. 动态服…

XD3C03P1G、XD3C01N3F比例方向控制阀放大板

XD3A01N2G、XD3A03N2G、XD3C03N1F、XD3C03P1G、XD3C01N3F、XD3C03N2F、XD3C01P4G、XD3C03P3G、XD3C03N2F、XD3C03N2G、XDP3A01P1F、XDP3C03N2G、XDP3A03P3G、XDP3C01NAF、XDP3C03P6G、XDP3A03PAG、XDP3A03N3F液压比例方向阀是液压系统中的关键元件&#xff0c;用于实现对流量、…

C#/WPF 自制截图工具

在日常使用电脑办公时&#xff0c;我们经常遇到需要截图然后保存图片&#xff0c;我们往往需要借助安装截图工具才能实现&#xff0c;现在我们通过C#自制截图工具&#xff0c;也能够轻松进行截图。 我们可以通过C#调用WindousAPI来实现截图&#xff0c;实例代码如下&#xff1a…

Three.js 中的光照模型

Three.js 中的光照模型 Three.js 的一个伟大抽象就是统一了所有材质的光照模型, 无论 PBR 或者 Phong。都只用两个函数给全部囊括了。 就是 RE_Direct(直接反射) 和 RE_IndirectDiffuse(间接反射)。真正做到了大一统。下面以Phong为例,具体看一下如何落地。 省流版本: // 直接…

CSF视频文件格式转换WMV格式(2024年可用)

如果大家看过一些高校教学讲解视频的话&#xff0c;很可能见过这样一个难得的格式&#xff0c;".csf "&#xff0c;非常漂亮 。 用暴风影音都可以打开观看&#xff0c;会自动下载解码。 但是一旦我们想要利用或者上传视频的时候就麻烦了&#xff0c;一般网站不认这…

开放式耳机哪个品牌质量最好最耐用?2024热门红榜耳机真实测评

随着人们生活质量的提高&#xff0c;喜爱运动的小伙伴也越来越多了&#xff0c;开放式蓝牙耳机的佩戴舒适度与稳定性这两个优势在很多运动场景中可以为用户带来更好的使用体验。此外&#xff0c;我们的音频使用、通话、游戏等应用场景在不断拓宽&#xff0c;蓝牙耳机的使用时间…

qt可点击的QLabel

需求——问题与思路 使用wpf实现一个可点击的超链接label相当简单&#xff08;如下图&#xff09;&#xff0c;但是qt的QLabel不会响应点击事件&#xff0c;那就从QLabel继承一个类&#xff0c;然后在该类中重写mousePressEvent函数&#xff0c;并在该函数中对左键点击事件做响…
最新文章