02Django的配置与部署
Django的配置与部署(部署到IIS)
步骤:- 编写自己的Django项目,进行基础设置后进行打包
- 开启一台服务器,并开启IIS和CGI(Windows)
- 下载python环境 和所需用到的数据库环境
- 去wwwroot目录下新建一个网站目录,并将网站项目移进来,并进行项目的数据库连接测试
- 进入到控制面板中的管理工具中的iis管理器中,创建一个网站,网站的根目录就是wwwroot内建的项目目录
- 下载并创建python虚拟环境,进入到项目根目录位置下载依赖包,并下载 wfastcgi
- 到项目根目录内添加web.config文件 并进行配置
- 到网站内添加虚拟目录配置静态文件,并到静态目录内添加 web.config
- 到程序眏射内确认hander ,到程序应用池内将标识改为本地系统
- 重启并访问网站
上面10个步骤是基于服务器端的配置, 在个人电脑上配置相同。下面将详细介绍在Win 10系统上,将Django项目配置到IIS中。 项目目录如下所示:
myDjango项目中有一个应用first,first应用中有一个放置静态文件的文件夹static
1. 在Win 10上添加IIS
进入Windows设置。 使用组合键win + x进入系统命令菜单,点击应用和功能,再添加windows功能。
勾选GCI
2. 修改settings.py文件,关闭调试模式
修改myDjango\myDjango\settings.py文件。# 调试模式,开发阶段为True,项目部署上线就要改为False,否则会泄露项目相关信息。 DEBUG = False
# 域名访问权限。设置可访问的域名,当DEBUG = True,ALLOWED_HOSTS = []空列表时,项目只允许localhost在浏览器访问。
# 当DEBUG = False,ALLOWED_HOSTS =必填,否则程序无法启动。如果要所有域名都可以访问可设为 ALLOWED_HOSTS = [‘*’]
3.下载wfastcgi工具
修改myDjango\myDjango\settings.py文件。该cgi的官网: https://pypi.org/project/wfastcgi/ 在虚拟环境下安装:
将D:\code\pythonWeb.venv\Lib\site-packages\wfastcgi.py 文件复制一份到项目文件目录下。我们在每个项目中都添加一份wfastcgi.py文件,主要是为了后续操作方便一点,而且不会有后续的访问权限等问题。
4. 在项目目录和静态文件目录下面配置文件
在项目根目录下添加Web.config文件,给文件的内容如下: (不用的项目,需要对该配置文件标签属性进行相应的修改)<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers> <remove name="StaticFile" /> <!-- 添加一个名为 djangofastcgi 的东西,其连接的位置是python的环境位置 和 wfastcgi 的位置 --> <add name="djangoFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\code\pythonWeb\.venv\Scripts\python.exe|D:\code\pythonWeb\myDjango\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> </handlers> </system.webServer> <appSettings> <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" /> <!-- 添加项目设置,该标签内存放的是项目的根目录 --> <add key="PYTHONPATH" value="D:\code\pythonWeb\myDjango" /> <!-- 该标签内要存放项目的settings文件的位置 注意是项目目录内 . 的文件--> <add key="DJANGO_SETTINGS_MODULE" value="myDjango.settings" /> </appSettings> </configuration>
scriptProcessor: 这里指定python解释器的位置和wfastcgi.py文件的位置,两个位置之间使用符号“|”隔开。
appSettings: 下面的add标签分别指定WSGI_HANDLER(WSGI的处理函数,这个值是固定的不用改动), PYTHONPATH(下面地址),DJANGO_SETTINGS_MODULE(项目的配置文件 项目名.settings)
<?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. 在IIS中添加网站
在开始菜单下,找到windows管理工具,打开IIS管理器。6. 在程序映射中确认Hander, 在 程序应用池 内将标识改为本地系统
7. 为项目中的静态文件目录设置虚拟目录
是因为 IIS7之后的版本都采用了更安全的 web.config 管理机制,默认情况下会锁住配置项不允许更改。我们把它解锁了就OK。打开 CMD,在里面依次输入下面两个命令:
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
最后注意重启一下网站,到此就完成发布了,可以通过指定公网ip去访问你的网页了。
其他问题
正常情况下,部署的时候管理后台样式是不能正常显示的,我们需要收集这些样式到项目里去,才能正常显示。步骤:
1、 在 settings.py 里添加 STATIC_ROOT配置 指定收集路径如:
指定样式收集目录,路径一般为项目里的static文件夹
在我们的项目中:
imoport os STATIC_ROOT = os.path.join(BASE_DIR, 'first/static')
2、 在服务器上配置时,还需要 进行如下设置:
然后CMD下运行如下面命令,进行样式采集:
python manage.py collectstatic
2、 在服务器上配置时,还需要 进行如下设置:
然后CMD下运行如下面命令,进行样式采集:
python manage.py collectstatic
3、 采集完成之后,刷新页面。后台样式成功显示。至此,部署结束。
参考:
[1] windows通过iis部署Django项目全篇详解: https://blog.csdn.net/adjnd/article/details/127260502[2] django中的静态文件: https://www.cnblogs.com/suncolor/p/16563224.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?