0
点赞
收藏
分享

微信扫一扫

Django项目接口部署

最近有一个项目需要部署到Windows服务器上,因为要用到一个office相关的插件,只有Windows上可以使用。 下面介绍一下如何部署到Windows上。 ​1. 错误原因分析​​ 找到项目所在节点

验证项目结构​​ 确保项目目录结构符合标准 Django 项目布局:

your_project_root/ # 当前工作目录(运行命令的位置) ├── manage.py # Django 项目管理文件 └── myproject/ # 项目主目录(必须与代码中的模块名一致) ├── init.py # 必须存在(空文件) ├── settings.py # 项目配置文件 ├── urls.py └── wsgi.py # WSGI 入口文件 ​​关键点​​: myproject 是顶层项目目录(包含 settings.py)。 确保 myproject 目录下存在 init.py 文件(即使为空),使其成为有效 Python 包。 ​​步骤2:检查当前工作目录​​ 运行命令时,必须位于 myproject 的 ​​父目录​​ 中。例如:

正确示例:在 "your_project_root" 目录下运行

cd D:\code_2023\report waitress-serve --port=8000 myproject.wsgi:application ​​错误示例​​:在 myproject 目录内运行(会导致 Python 找不到模块): cd D:\code_2023\report\myproject waitress-serve --port=8000 myproject.wsgi:application # 报错! ​​

尝试导入 myproject

import myproject # 如果报错,说明路径或命名问题 ​​预期输出​​:无错误。 ​​常见修复​​: 如果 sys.path 中缺少项目根目录,手动添加: sys.path.insert(0, r"D:\code_2023\report") # 项目根目录路径 ​​步骤5:检查代码中的模块引用​​ 确保所有文件(尤其是 wsgi.py 和 settings.py)中引用的模块名称与目录名一致:

myproject/wsgi.py

import os from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') # 必须与目录名匹配 application = get_wsgi_application() ​​步骤6:修复项目命名不一致​​ 如果实际项目目录名为 myapp,但代码中写为 myproject,需全局替换名称:

重命名目录: mv myproject myapp # 在项目根目录执行 更新所有相关文件中的引用(如 settings.py、wsgi.py、manage.py)。 ​​3. 完整命令示例​​ 假设项目结构如下:

D:\code_2023\report/ ├── manage.py └── myproject/ ├── init.py ├── settings.py ├── urls.py └── wsgi.py 运行命令:

进入项目根目录

cd D:\code_2023\report

启动服务(使用线程模式)

waitress-serve --port=8000 --threads=4 myproject.wsgi:application

如若报错,尝试运行一下命令验证

python -m myproject.wsgi 如果成功,说明 WSGI 配置正确,问题出在 waitress 命令调用方式。

验证修复​​ ​​手动启动 Django 开发服务器​​: python manage.py runserver 0.0.0.0:8000 如果正常访问 http://localhost:8000,则项目配置正确。

举报

相关推荐

0 条评论