pycharm运行django项目需确保django插件启用、解释器正确配置(推荐project venv)、django server运行配置中settings填模块路径(如myproject.settings)、application name指定应用名,并在project structure中显式设置templates目录,缺一不可。

PyCharm 运行 Django 项目不是点一下“运行”就能成的事——它依赖插件、解释器、配置三者对齐,缺一不可。Pro 版本才支持完整功能,社区版连 Django Server 运行配置都不可见。
确认 Django 插件已启用
PyCharm 的 Django 支持不是开箱即用的“默认功能”,而是靠插件驱动。即使你装的是 Pro 版,插件也可能被手动禁用。
- 按
Ctrl+Alt+S(Windows/Linux)或Cmd+,(macOS)打开设置 - 进入
Plugins→Installed标签页 - 搜索
Django,确保其复选框已勾选;若没看到,说明未安装(但 Pro 版应预装) - 重启 PyCharm 生效(改插件状态后必须重启,热加载不生效)
常见错误现象:File → New Project 里没有 Django 类型选项;Run → Edit Configurations 里找不到 Django Server;模板文件无法跳转到视图函数。
创建项目时必须选对解释器类型
PyCharm 创建 Django 项目时,“解释器”选择直接影响后续能否正常 manage.py runserver。不能直接用系统 Python,也不能用随便一个虚拟环境。
- 新建项目时,项目类型选
Django,不要选Python再手动搭 - 解释器类型推荐选
Virtualenv(即project venv),位置保持默认即可 - 避免选
Base Conda或System Interpreter:前者易因 conda 环境未激活导致django.core.exceptions.ImproperlyConfigured;后者可能混用全局包,引发版本冲突 - 如果已有虚拟环境,选
Existing environment,路径必须指向venv/bin/python(macOS/Linux)或venv\Scripts\python.exe(Windows)
关键点:manage.py 脚本能否执行,取决于 PyCharm 当前使用的解释器是否能 import django。选错解释器,右键运行 manage.py 会报 ModuleNotFoundError: No module named 'django'。
运行配置里必须填对 Settings 和 Application name
PyCharm 自动生成的 Django Server 配置只是骨架,Settings 和 Application name 字段空着就等于没配。
- 打开
Run → Edit Configurations,选中左侧Django Server配置(若没有,点击+→Django Server) -
Host建议填127.0.0.1(别用localhost,某些 hosts 配置下解析失败) -
Port默认8000,冲突时可改,但记得同步更新浏览器访问地址 -
Settings字段必须填成myproject.settings(其中myproject是你的项目包名,即含settings.py的那个目录名,不是项目文件夹名) -
Application name填你通过python manage.py startapp xxx创建的应用名,比如todo;留空也可启动,但部分调试功能(如模板断点)会失效
典型错误:django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured —— 就是 Settings 字段写错了,比如写成 settings.py 或 myproject/settings.py(路径不是模块路径)。
调试模板前得先设对模板根目录
PyCharm 的 Django 模板断点只在 Pro 版有效,而且前提是 IDE 能识别出哪些目录是模板路径。光把 HTML 文件扔进 templates/ 不够。
- 进入
File → Project Structure → Project Settings → Facets - 选中
Djangofacet,展开后找到Templates directory - 点击右侧
...,定位到你项目里的templates目录(例如myproject/templates) - 如果应用级模板分散在各 app 下(如
todo/templates/todo/),也要在该字段里用分号追加,如:myproject/templates;todo/templates
否则,你在 index.html 打的断点永远不会触发,浏览器访问时也看不到调试面板里的模板上下文。这个设置藏得深,且不自动推导,90% 的人第一次调试模板失败都是卡在这步。











