Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)

目录

必要条件:

一、下载并启用wfastcgi

二、window安装 IIS功能

三、IIS管理器中添加网站

1、复制项目

2、复制wfastcgi.py文件

3、创建文件web.config

4、添加网站,填写信息

5、启动fastcgi程序

6、修改进程标识

四、static文件设置和正确显示


必要条件:

已经有一个完整的django项目搭建好,在vscode或者pycharm可以正常运行

通过python manage.py runserver能够正常访问

部署到本地window IIS服务器:

django项目只是我们的一个应用项目,想要实现不用打开vscode 输入命令来启动项目,用户就可以通过ip地址加端口来访问,就需要服务器帮助我们部署好,常见的服务器有apache、nginx、IIS等,这里就只讲window系统下 IIS服务器部署网站的过程。

一、下载并启用wfastcgi

这里可以通过cmd窗口下载并启动

pip install wfastcgi
wfastcgi-enable

输出得到类似这种信息c:\Users\ss\AppData\Local\Programs\Python\Python37\python.exe|c:\Users\ss\AppData\Local\Programs\Python\Python37\lib\site-packages\wfastcgi.py"

|前面代表你的python运行环境(这里要确记这个环境是你django项目运行的环境,要保持一致),后面代表wfastcgi.py文件所在路径

二、window安装 IIS功能

按照这个路径启动或关闭windows功能

按照这个来勾选功能,然后点击确定进行安装,安装完后重启一下系统,打开IIS管理器

然后浏览器输入127.0.0.1出现以下这个页面代表IIS服务器正常启动了

三、IIS管理器中添加网站

1、复制项目

首先在C:\inetpub\wwwroot\目录下面创建一个文件夹比如demo 这个文件夹用于存放你创建好的django项目,比如这个是我创建好的项目,直接把这里的全部文件复制到刚刚创建的demo文件夹

2、复制wfastcgi.py文件

按照刚刚第一步输出的路径c:\Users\ss\AppData\Local\Programs\Python\Python37\lib\site-packages\找到wfastcgi.py文件,也复制到demo文件夹里面,也就是跟manage.py同一个目录

3、创建文件web.config

同样在这个目录下,创建文件web.config

这里主要修改scriptProcessor

scriptProcessor="c:\Users\ss\AppData\Local\Programs\Python\Python37\python.exe|c:\inetpub\wwwroot\demo\wfastcgi.py

要更换成自己的,前面是python执行环境,后面就是复制的wfastcgi.py路径

<add key="PYTHONPATH" value="C:\inetpub\wwwroot\demo" />这里换成自己的路径
            <add key="DJANGO_SETTINGS_MODULE" value="myFirWeb.settings" />这里的settings换成你自己创建的django项目名,我是前面的myFirWeb

<?xml version="1.0" encoding="UTF-8"?><configuration><system.webServer><handlers><add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\Users\ss\AppData\Local\Programs\Python\Python37\python.exe|c:\inetpub\wwwroot\demo\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:\inetpub\wwwroot\demo" /><add key="DJANGO_SETTINGS_MODULE" value="myFirWeb.settings" /><add key="WSGI_LOG" value="C:\inetpub\wwwroot\demo\error.log" /></appSettings></configuration>

4、添加网站,填写信息

名称随便填写,物理路径就刚刚创建的C:\inetpub\wwwroot\demo,端口尽量选择其他例如8001这些,不要80,80是默认的已经使用的端口

5、启动fastcgi程序

创建完成后,点击网站www,找到处理程序映射,找到刚刚 创建的这个模块<add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule

点击进入,检查一下和web.config文件对应不,然后点击请求限制

即使没有什么改进也要点进来,进行,确认,确认,然后选择是,就相当于启动这个程序,这一步很重要

6、修改进程标识

点击应用程序池,点击自己的网站,点击右侧高级设置,修改进程标识为localsystem

然后重启网站,浏览器输入网址127.0.0.1:端口号,就可以正常访问

四、static文件设置和正确显示

我一开始按照上述方法弄了之后,页面的样式无法正常显示。

1、将STATICFILES_DIRS = (
   os.path.join(BASE_DIR, "static"),
 )修改成以下代码

STATIC_URL = '/static/'
STATIC_ROOT= os.path.join(BASE_DIR, 'static')

然后命令行窗口输入 > python manage.py collectstatic 选择yes覆盖

2、在static目录下创建文件web.config这个很重要

<?xml version="1.0" encoding="UTF-8"?><configuration><system.webServer><handlers><remove name="Python FastCGI" /></handlers></system.webServer></configuration>

最后可以正常显示网站页面

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20.04 Kimera Semantic运行记录

Ubuntu20.04 Kimera Semantic运行记录 以下基本为官方教程&#xff0c;有部分修改 依赖 sudo apt-get install python3-wstool python3-catkin-tools protobuf-compiler autoconf sudo apt-get install ros-noetic-cmake-modulessudo apt-get install ros-noetic-image-pro…

【2023传智杯】第六届传智杯程序设计挑战赛AB组-DEF题解题分析详解【JavaPythonC++解题笔记】

本文仅为【2023传智杯】第六届传智杯程序设计挑战赛-题目解题分析详解的解题个人笔记,个人解题分析记录。 本文包含:第六届传智杯程序设计挑战赛题目、解题思路分析、解题代码、解题代码详解 文章目录 一.前言更新进度记录二.比赛题目(AB俩组)D题题目-abbE题题目 -kotori和…

Appium 2 和 Appium Inspector 环境部署

前言 自 2022 年 1 月 1 日起&#xff0c;Appium 核心团队不再维护 Appium 1.x。官方支持的平台驱动程序的所有最新版本均不兼容 Appium 1.x&#xff0c;需要 Appium 2 才能运行。 Appium 2是一个自动化移动应用程序的开源工具&#xff0c;它带来了以下重要改进&#xff1a;  …

人工智能原理复习--知识表示(一)

文章目录 上一篇知识概述命题逻辑谓词逻辑谓词逻辑的应用 下一篇 上一篇 人工智能原理复习–绪论 知识概述 知识就是人类认识自然界的精神产物&#xff0c;是人类进行智能活动的基础。 是经过加工的信息&#xff0c;包括事实、信念和启发式规则。 分类&#xff1a; 按作用可…

【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向前Euler)【理论到程序】

文章目录 一、数值积分法1. 一般步骤2. 数值方法 二、欧拉方法&#xff08;Euler Method&#xff09;1. 向前欧拉法&#xff08;前向欧拉法&#xff09;a. 基本理论b. 典例解析c. 算法实现 常微分方程初值问题的数值积分法是一种通过数值方法求解给定初始条件下的常微分方程&am…

【C++初阶】五、类和对象(日期类的完善、流运算符重载函数、const成员、“”取地址运算符重载)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】四、类和对象 &#xff08;构造函数、析构函数、拷贝构造函数、赋值运算符重载函数&#xff09;-CSDN博客 一 . 日期类的完善 此次日期类的成员函数&#xff0c;采用声明…

flutter的TextField参数、案例整理(下)

TextField 简述 下面整理了一些TextField常用参数的具体使用方式&#xff0c;留作记录。 decoration让输入框样式自定义 构造函数 const InputDecoration({this.icon, // 左边添加一个 Widgetthis.labelText, // 顶部描述字符串&#xff0c;如果输入框成为焦点&#xff0c…

Android中的多进程

在Android中也可以像pc一样开启多进程&#xff0c;这在android的编程中通常是比较少见的&#xff0c;以为在一个app基本上都是单进程工作就已经足够了&#xff0c;有一些特殊的场景&#xff0c;我们需要用多进程来做一些额外的工作&#xff0c;比如下载工作等。 在Android的An…

Elasticsearch底层原理分析——新建、索引文档

es版本 8.1.0 重要概念回顾 Elasticsearch Node的角色 与下文流程相关的角色介绍&#xff1a; Node Roles配置主要功能说明masternode.roles: [ master ]有资格参与选举成为master节点&#xff0c;从而进行集群范围的管理工作&#xff0c;如创建或删除索引、跟踪哪些节点是…

【MyBatisPlus主键生成策略】

文章目录 什么是主键生成策略&#xff1f;MyBatis Plus 中的主键生成策略如何在 MyBatis Plus 中配置主键生成策略 什么是主键生成策略&#xff1f; 在数据库中&#xff0c;每一行数据都需要一个唯一的标识符&#xff0c;这就是主键。主键生成策略决定了如何为新插入的行生成这…

Postman进阶功能实战演练

Postman除了前面介绍的一些功能&#xff0c;还有其他一些小功能在日常接口测试或许用得上。今天&#xff0c;我们就来盘点一下&#xff0c;如下所示&#xff1a; 1.数据驱动 想要批量执行接口用例&#xff0c;我们一般会将对应的接口用例放在同一个Collection中&#xff0c;然…

一种新的基于物理的AlGaN/GaN HFET紧凑模型

标题&#xff1a;A new physics-based compact model for AlGaN/GaN HFETs (IEEE MTT-S International Microwave Symposium) 摘要 摘要 - 针对AlGaN/GaN HFET&#xff0c;提出了一种无拟合参数的物理解析模型。对于非饱和操作&#xff0c;建立了两个接入区和栅极下方I-V特性的…

消息队列进阶-1.消息队列的应用场景与选型

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44…

函数声明与函数表达式

函数声明 一个标准的函数声明&#xff0c;由关键字function 、函数名、形参和代码块组成。 有名字的函数又叫具名函数。 举个例子&#xff1a; function quack(num) { for (var i 0; i < num; i) {console.log("Quack!")} } quack(3)函数表达式 函数没有名称…

使用opencv将sRGB格式的图片转换为DCI-P3格式【sRGB】【DCI-P3】

要将图像从 sRGB 格式转换为 DCI-P3 格式&#xff0c;您需要使用适当的线性转换矩阵。在 OpenCV 中&#xff0c;这通常涉及使用色彩转换函数&#xff0c;但 OpenCV 默认情况下不直接支持 sRGB 到 DCI-P3 的转换。因此&#xff0c;您需要手动计算并应用转换矩阵。 转换矩阵取决…

解决OpenAI unable to load history chatgpt

解决过程 打开浏览器控制台&#xff0c;发现有报错--unable to load history no access token when trying to use authheader&#xff0c;再慢慢检查&#xff0c;发现openAI session返回有 {"detail":"Too many requests in 1 hour. Try again later."}…

skywalking告警qq邮箱发送

首先开启发送接收qq邮箱的权限 开启之后&#xff0c;会让你发送信息&#xff0c;按着一系列操作&#xff0c;获得password &#xff08;授权码&#xff08;例如&#xff0c;qq开启SMTP授权码&#xff0c;qq授权码16位&#xff09;&#xff09; <!-- mail邮箱-->…

传智杯-题目1

运气 一&#xff1a;对于每一的1到6都进行枚举&#xff0c;进行递归操作 二&#xff1a;如果位数到了指定的n的时候&#xff0c;递归的条件&#xff0c;进行判断是否可以整除操作 #include<iostream> #include<algorithm> using namespace std; long long n, k, an…

Java抽象类:类的幕后黑手,提供继承和扩展的框架。

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、抽象类的概念二、注意事项三、抽象类的作用 一、抽象类的概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘…

Android 12.0 禁用adb reboot recovery命令实现正常重启功能

1.前言 在12.0的系统rom定制化开发中,在定制recovery模块的时候,由于产品开发需要要求禁用recovery的相关功能,比如在通过adb命令的 adb reboot recovery的方式进入recovery也需要实现禁用,所以就需要了解相关进入recovery流程来禁用该功能 2.禁用adb reboot recovery命令…