尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
PyCharm 中创建并运行 Django 项目:从环境配置到首个页面全流程
很多新手朋友在接触 Python Web 开发时第一个拦路虎往往不是 Django 框架本身而是“怎么把这个项目在 PyCharm 里跑起来”。我当年第一次创建 Django 项目的时候光是“该选哪个解释器”“虚拟环境和全局环境到底有什么区别”“为什么创建完项目还得手动安装 django”这些细节就折腾了好几个小时。其实 PyCharm 把 Django 的集成做得非常到位只要搞懂背后的机制创建加运行一个完整的项目十分钟足够。这篇就结合我这些年的实操经验把整个流程、涉及到的原理、常见的坑一次性讲透适合从零开始的 Python 初学者也适合想换成 PyCharm 做 Django 开发的老手。1. 环境准备与版本选型1.1 为什么选 PyCharm 来做 Django 开发很多人在刚接触 Web 开发时会纠结一个问题Django 不是只需要一个文本编辑器和命令行就能跑吗为什么非要装一个那么重的 IDE?我的真实体会是用 PyCharm 做 Django 开发节省的不是写代码的时间而是“理解项目结构”和“排查问题”的时间。Django 自带的管理命令足够强大但新手经常搞不清楚 manage.py 在哪运行、虚拟环境有没有激活、Python 解释器选没选对。PyCharm 把这一套流程全部可视化新建项目时自动创建虚拟环境、一键安装 Django、自动识别 manage.py、点击运行按钮直接启动开发服务器。这些琐碎的事情不用记IDE 帮你做了你就能把精力放在路由、模型、视图这些真正的业务逻辑上。PyCharm 对 Django 的专用支持也很实用。写模板文件时{% %}和{{ }}会自动高亮、自动补全改 models.py 之后IDE 会提醒你执行迁移命令点一下侧边栏的数据库面板直接就能看到表结构。这些功能平时不显眼但一旦你写过几个项目再回到纯文本编辑器就会明显感觉效率低一截。1.2 Python 与 Django 版本搭配以及虚拟环境的取舍在动手创建项目之前先解决一个底层问题装哪个版本的 Python配哪个版本的 Django。Django 的版本迭代有自己的节奏不同版本对 Python 版本有明确要求。用一张表简单整理目前常见的搭配Django 版本对应的 Python 版本适用情况Django 4.2 LTSPython 3.8 及以上最稳妥的生产级选择资料丰富Django 5.0Python 3.10 及以上新特性多适合学习新语法Django 5.1/5.2Python 3.10 及以上当前较新的稳定版适合新项目我不是让你死记这张表而是想说一个核心原则Django 版本不需要追求最新反而要追求稳定和教程覆盖率。很多网上的教程和第三方库还是围绕 Django 4.2 写的你如果非要装最新的 5.2表面上没问题但遇到某个第三方扩展包不兼容的时候排查成本会高很多。我一般建议新手默认装 Django 4.2 LTS或者直接跟着 PyCharm 在创建项目时推荐的版本走省心。再来说虚拟环境。这个概念听起来高大上其实可以拿“房间隔离”来类比。你电脑里的 Python 环境就像一间大仓库仓库里堆满各种库。项目 A 需要 Django 4.2项目 B 需要 Django 5.0如果全装在一个仓库里两边迟早冲突。虚拟环境就是给每个项目单独开一个小房间项目 A 的小房间里只有 Django 4.2项目 B 的小房间里只有 Django 5.0互不干扰。PyCharm 新建项目的时候默认会帮你创建虚拟环境。这点非常关键——不要取消那个勾选不要图省事直接选全局解释器。单独项目配单独环境后来维护的时候你会感谢这个习惯。1.3 PyCharm 版本选择与安装注意事项PyCharm 分成两个大的版本社区版和专业版。社区版完全免费日常的 Python 开发、代码补全、调试功能都有但唯独不直接支持 Web 框架快速集成比如创建 Django 项目时不会显示“Django”这个选项新建项目里少了 Django 专门的配置。不过这只是少了可视化入口并不影响你用命令行创建 Django 项目再用社区版打开文件夹进行编码。如果只是学习和写练习项目社区版完全够用。专业版是收费的功能上比社区版多了完整的 Django 支持、数据库工具、HTML 模板支持等。如果你打算长期做 Web 开发专业版体验确实更好。这里说句实在话千万别去搜什么激活码、破解版之类的东西一方面版权风险很大另一方面网上那些所谓的“永久激活码”要么早就失效要么携带木马装了之后得不偿失。个人学习就用社区版学生和教师还可以申请 JetBrains 官方的免费教育授权正规渠道完全够用。安装过程本身没什么难度官网下载对应系统的安装包一路 Next 就行。需要注意两点第一安装到自定义路径时尽量选择全是英文的路径避免个别 Python 包出现奇怪的编码问题第二安装过程中有一个 “Download 64-bit JRE” 和 “Add launchers to PATH” 之类的选项前者会让你多下载一个 Java 运行环境非必要可以不勾后者建议勾上方便后续在命令行里直接使用pycharm命令启动。2. 创建项目的三种思路与目录结构2.1 从零新建一个 Django 项目到底生成了什么在真正点击按钮之前有必要搞清楚 Django 项目创建之后生成的每一个文件是干什么的。不然后续出问题时你都不知道该去哪个文件里改配置。通过django-admin startproject myproject命令或者 PyCharm 的可视化操作会生成一个项目骨架。核心文件包括manage.pyDjango 项目管理入口所有操作都要经过它比如启动开发服务器、执行数据库迁移、创建新的应用。myproject/__init__.py告诉 Python 这个目录是一个包。myproject/settings.py项目全局配置文件数据库、时区、静态文件路径、应用注册全在这里。myproject/urls.py总路由入口浏览器访问什么路径由它分发到哪个视图函数。myproject/asgi.py和myproject/wsgi.py部署到服务器时用的接口文件开发阶段基本不用碰。这些文件刚开始没必要每个都背下来但至少心里有个数项目配置在settings.py路由总入口在urls.py。2.2 创建 app 与注册Django 的模块化思想很多初学者搞混“项目project”和“应用app”的关系。我把项目比作一个“公司”应用比作公司里的各个“部门”。公司负责整体运营全局配置、路由分发部门负责具体业务博客的文章功能、电商的商品功能、论坛的帖子功能。一个 Django 项目里可以有多个应用每个应用都是独立的业务模块。创建应用的命令是python manage.py startapp blog执行后PyCharm 的项目结构里会多出一个blog文件夹里面包含models.py、views.py、tests.py等文件。但这时候应用还没有被“公司”正式录用必须去settings.py的INSTALLED_APPS列表里加上blog应用才真正生效。这个步骤经常被忽略新手容易犯的错就是应用创建了模型建了页面怎么访问都 404最后发现INSTALLED_APPS里没加。这一步非常关键。2.3 路由、视图、模板第一次请求是怎么走通的理解 Django 处理请求的过程可以看成一个完整的“快递派送”流程。用户在浏览器里输入网址比如http://127.0.0.1:8000/blog/这个请求就像一封信送到 Django 的总收发室也就是urls.py中的urlpatterns列表。总收发室看到路径是blog/就把它转交给blog这个应用自己的路由文件。应用路由找到对应的视图函数视图函数开始处理业务逻辑比如查询数据库里的文章然后把数据传给模板。模板负责把数据渲染成 HTML最后 Django 把渲染好的网页返回给浏览器。这个流程里每个人只做自己那部分事路由只负责分发视图只负责逻辑模板只负责展示。Django 这种“路由-视图-模板”的分工模式刚开始可能觉得绕但一旦上手就会发现它特别规整大型项目多人协作时也不容易乱。3. 完整实操流程十分钟跑通第一个页面3.1 新建项目与解释器配置咱们现在实际操作一遍。打开 PyCharm点击左上角File-New Project。在弹出的窗口里左侧选Django如果没有这个选项说明你用的是社区版没关系先选Pure Python后面用命令行创建项目骨架就行。我这里以专业版界面为例讲解但原理通用。关键配置项有三个第一是Location也就是项目保存路径。建议单独建一个DjangoProjects之类的目录每个项目放在自己的子文件夹里别把所有项目堆在桌面上后来越来越多会很乱。第二是Python Interpreter这里选New environment using VirtualenvPyCharm 会自动为这个项目创建独立的虚拟环境。Python 版本选你机器上装好的 3.8 以上的版本。如果你机器上装了 Anaconda也可以在Previously configured interpreter里选 Anaconda 自带的环境这个看个人习惯没有谁绝对更好。第三是下面的More Settings里面有个Application namePyCharm 允许你在创建项目时就指定一个初始应用。如果你想直接生成一个带blog应用的项目可以在这里填blog也可以留空稍后用命令创建。填好之后点CreatePyCharm 会自动完成两件事帮你创建虚拟环境并把 Django 安装进去。这一步可能需要下载一些文件耐心等待即可。3.2 安装 Django 与生成项目骨架专业版创建项目时PyCharm 会默认在虚拟环境里安装最新版本的 Django。如果是社区版或者想手动控制版本可以在 PyCharm 底部打开Terminal终端输入pip install django4.2.*建议指定版本号安装而不是直接pip install django这样可以避免装到最新版后遇到第三方库不兼容的问题。接下来生成项目骨架。如果你的项目是通过 PyCharm 的 Django 模板创建的manage.py和包含settings.py的上一级目录已经有了如果不是就在终端中运行django-admin startproject myproject .注意后面这个点.意思是“在当前目录下生成项目配置”。很多人漏掉这个点结果多套了一层目录跑起来路径全乱。这个点要养成习惯。如果你没有在 PyCharm 创建项目时填写应用名现在补一下python manage.py startapp blog然后打开settings.py找到INSTALLED_APPS把blog加进去INSTALLED_APPS [ django.contrib.admin, django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.messages, django.contrib.staticfiles, blog, # 这一行是手动加的 ]3.3 编写视图、配置路由并启动开发服务器现在写第一个页面。打开blog/views.py输入from django.http import HttpResponse def index(request): return HttpResponse(你好我的第一个 Django 页面)这个视图函数特别简单接受一个request参数然后直接返回一段文字。新手别嫌它幼稚它能让你以最快的速度验证“路由到视图到响应”整条链路是通的。接着在blog应用下新建一个urls.py文件内容如下from django.urls import path from . import views urlpatterns [ path(, views.index, nameindex), ]然后把blog应用的路由挂到项目总路由里。打开项目根目录下的urls.py改成from django.contrib import admin from django.urls import path, include urlpatterns [ path(admin/, admin.site.urls), path(blog/, include(blog.urls)), ]这里的include作用是把blog/开头的所有请求都转交给blog/urls.py继续处理。在 PyCharm 中运行 Django 项目很简单。找到顶部工具栏的Add Configuration或者直接右键manage.py选择运行。如果是第一次配置运行方式点Edit Configurations左侧加一个Django ServerName 随意manage.py路径会自动识别为项目根目录。配置好后点那个绿色的运行按钮PyCharm 会执行python manage.py runserver。启动成功后终端里会显示类似这样的信息Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.用浏览器访问http://127.0.0.1:8000/blog/如果看到“你好我的第一个 Django 页面”恭喜整条链路已经通了。3.4 用 PyCharm 的调试器看请求走向项目跑起来之后如果只满足于“能显示页面”那就太可惜了。我建议你花两分钟体验一下 PyCharm 最强大的功能之一调试器。在blog/views.py的return那一行左边点一下会出现一个红点这叫断点。然后点击工具按钮里那只小虫子Debug 模式重新访问网页。这时候 PyCharm 会弹出一个调试窗口程序停在断点处你可以看到所有局部变量的值比如request对象里带着的路径、请求头、请求方法。按 F8 可以单步执行按 F9 继续运行。调试模式最实用的场景是排查问题页面报了 500 错误别急着瞎猜代码哪里有问题打几个断点看数据到底在哪一步断的、变量到底传成了什么值效率比 print 大法高得多。4. 常见问题与排查技巧实录4.1 终端报错与解释器不对齐新手最常见的问题就是在 PyCharm 底部的 Terminal 里运行命令时提示找不到 django 模块ModuleNotFoundError: No module named django但打开项目设置明明显示项目环境里已经装了 django。这个问题的根源在于PyCharm 的 Terminal 没有自动激活当前的虚拟环境。你用的是系统全局环境虚拟环境里装的 django 它看不到自然报错。解决办法有两个。第一种在 Terminal 里手动激活环境。Windows 下运行venv\Scripts\activateMac 或 Linux 下运行source venv/bin/activate激活后命令行最前面会出现(venv)字样这时候再运行python manage.py runserver就不会有模块缺失的报错了。第二种更省事在 PyCharm 的Settings-Tools-Terminal里把Shell path配置为项目虚拟环境里 Python 的路径。不同系统配置略有差异目的是让每次打开 Terminal 都自动激活虚拟环境。不知道在哪找虚拟环境路径可以先在 Terminal 里运行where pythonWindows或者which pythonMac/Linux把路径粘过去。4.2 启动服务器失败与端口占用运行runserver时有时候会报Error: That port is already in use.这是因为默认的 8000 端口被其他进程占用了。可能是你之前运行过一个 Django 服务没关也可能是其他软件占用了。解决办法很简单换一个端口运行python manage.py runserver 8001还可以加一个 IP 参数让局域网内的其他设备也访问到python manage.py runserver 0.0.0.0:8000加了0.0.0.0之后同一局域网里的手机或其他电脑可以通过你电脑的局域网 IP 加端口来访问网站非常适合用手机看页面效果。4.3 ALLOWED_HOSTS 相关报错在启动时会遇到一种报错DisallowedHost: Invalid HTTP_HOST header: ...这是 Django 的安全机制。settings.py里ALLOWED_HOSTS默认是空的只允许访问本机的127.0.0.1和localhost。当你用0.0.0.0:8000启动别人通过局域网 IP 访问时Django 会拒绝请求。解决办法是把允许访问的主机加进去ALLOWED_HOSTS [*]这样表示允许所有主机访问开发阶段省心。但上线部署时一定要改成具体的域名比如[www.example.com]否则别人可以随意用域名指向你的服务容易有安全隐患。4.4 静态文件 404 与数据库迁移不生效页面能打开了但 CSS 和图片全部加载不出来网络面板里全是 404。这通常有两个原因。第一个原因是没写加载静态文件的模板语法。在模板里要这样写{% load static %} link relstylesheet href{% static css/style.css %}第二个原因是settings.py里的STATIC_URL和STATICFILES_DIRS没有配置好。开发阶段最简单的方式是项目根目录建一个static文件夹然后在 settings 里加上STATIC_URL /static/ STATICFILES_DIRS [ BASE_DIR / static, ]再说数据库迁移。Django 默认用的是 SQLite数据库文件就是一个本地的db.sqlite3文件。第一次运行项目后如果访问管理后台提示表不存在说明你还没执行迁移。在终端运行两步python manage.py makemigrations python manage.py migratemakemigrations是根据代码里的模型生成迁移文件migrate是把迁移文件真正应用到数据库。如果这两个命令都没问题但仍然报错检查一下虚拟环境是否激活再不行就删掉db.sqlite3重新迁移开发阶段数据不重要重新来往往比排查更高效。4.5 常见问题速查表问题现象可能原因解决办法No module named django虚拟环境未激活在 Terminal 里激活 venv或检查解释器That port is already in use8000 端口被占换端口runserver 8001DisallowedHost 报错ALLOWED_HOSTS 未配置开发环境改为[*]上线写域名静态文件 404模板没写 static 标签或路径配置错误检查模板里{% static %}和 settings页面报 500 错误视图代码异常或数据库未迁移用 PyCharm 调试器打断点看错误信息模板变量显示为空视图没传数据或变量名写错在调试器中查看 locals()核对 key5. 从第一个页面到真正的 Web 项目5.1 PyCharm 里做 Django 开发的几个顺手工具第一个页面跑通只是起点。接下来你大概率会遇到需要调试模板、操作数据库、管理依赖的场景PyCharm 有几个内置功能我平时用得非常多值得提前说。第一个是数据库面板。PyCharm 专业版右侧的Database工具可以直接连上项目的 SQLite 文件双击就能看到表结构和数据。选中db.sqlite3点加号连接数据源驱动选 SQLite然后就可以像操作 Excel 一样浏览表了。排查模型字段与数据库对不上的问题时这个面板能省不少时间。第二个是依赖管理提示。当你打开requirements.txt文件PyCharm 会提示安装了哪些包、哪些可以升级。建议把已经通过 pip 安装的依赖写成requirements.txtpip freeze requirements.txt换机器或者部署时一条pip install -r requirements.txt能把环境完整还原。第三个是模板语言支持。在写 HTML 模板时PyCharm 能高亮{% %}和{{ }}语法还能跳转到对应的视图和 URL。如果你还在特征查url标签怎么写、视图函数返回的是哪个模板这个小功能能直接提升效率。从开发效率角度看不用记太多快捷键先把 F8 单步调试、CtrlP 参数提示、CtrlShiftF 全局搜索这几个用熟日常开发已经能顺很多了。5.2 个人实操心得与避坑经验最后分享几条踩过几次坑之后总结出来的经验这些在官方文档里不会写但实操中特别管用。第一不要图省事把所有代码写在一个文件里。Django 的架构设计就是模块化初学者很容易为了“快点看到效果”把视图函数堆在一起结果项目一复杂就乱成一团。从第一个项目开始就按照 app 划分功能视图、模型、表单各归各类后面维护的成本会低一个数量级。第二每次修改模型后第一时间就要想到迁移命令。很多人改完models.py就跑去刷新页面结果页面报错原因全是数据库里没有对应字段。养成改完模型立刻执行makemigrationsmigrate的习惯能避掉最多的低级错误。第三多读报错信息的最后一行。Django 的报错信息非常完善新手容易一看满屏红字就慌其实绝大多数错误关键信息都在最下面那行或者紧接着的几行里。比如No module named django问题在哪一目了然。养成追根溯源看报错的习惯比任何经验帖都管用。第四尽早把项目放到 Git 里管理。PyCharm 自带 Git 集成右键项目选择Git-Add to VCS然后每次完成一个小功能就提交一次。刚开始觉得多余出了几次改崩代码想回退的坑就知道这习惯有多重要了。第五开发阶段关掉多线程自动重载也可以关注一下。runserver默认开了自动重载修改代码会立刻生效但也会占用一定资源。如果你用的是 PyCharm 调试模式偶尔遇到代码改了但效果没变重启一下服务器或者清一下浏览器缓存大概率就正常了。这个项目再往后走你可以试着加一个 Django 后台管理页面创建超级用户python manage.py createsuperuser访问http://127.0.0.1:8000/admin/你就能用图形界面管理数据了。这是 Django 和很多框架比最“良心”的特性之一也是你从“能跑页面”过渡到“能做真实功能”的关键一步。把这些基础打牢后面的模型设计、表单验证、用户系统学起来都会顺畅很多。
RELATED

相关推荐

Codex CLI 多 Agent 协同实战:突破单 Agent 瓶颈的工程化方案

Codex CLI 多 Agent 协同实战:突破单 Agent 瓶颈的工程化方案

1. 单 Agent 的瓶颈:为什么 Codex 一个人扛不住复杂工程很多人第一次用 Codex CLI 的时候,都会经历一个"蜜月期"——在终端里敲一句自然语言,它就能帮你生成函数、补全测试、解释报错,感觉像是雇了一个随叫随到的编程助…

📅 2026/10/1 13:28:09
零基础Codex实战:从环境配置到项目开发全流程指南

零基础Codex实战:从环境配置到项目开发全流程指南

1. 为什么“小白也能学会”的 Codex 实战课值得花时间 很多人第一次听到 Codex 这个词,脑子里冒出来的是一堆问号:它到底是个什么东西?是插件、是模型、还是一个独立软件?跟平时写代码用的编辑器有什么关系?我刚开始接…

📅 2026/10/1 13:28:09
多智能体桌面工作台:用鼠标手势在IDE中统一调度Claude、Codex与Pi

多智能体桌面工作台:用鼠标手势在IDE中统一调度Claude、Codex与Pi

1. 多智能体桌面工作台的真实需求拆解1.1 为什么"一个 agent 一个软件"是效率杀手我日常的工作流里同时挂着三个命令行智能体:Claude 负责长文档理解和代码重构,Codex 负责快速补全和单文件改写,Pi 负责一些轻量的脚本生成和结构化…

📅 2026/10/1 13:28:09
MORE NEWS

更多资讯

📰

DeepSeek Harness架构实战:MCP协议、Skill桥接与Token预算工程指南

1. 这不是创业故事,是单人Agent工程极限压力测试的实录 “一个人、九个月、20万行代码、每个月烧掉40亿 token”——这行标题在技术圈刷屏时,我第一反应不是惊叹,而是立刻打开终端查了查自己上周的OpenRouter账单:378万token。数字…

📰

Agent产品设计实战:从Workflow到决策循环的落地指南

Agent 产品设计这件事,最近半年被问得特别多。几乎每次线下交流,都有人拿着一个想法来找我:“我想做个 Agent,能帮我自动处理 XX 事务,该从哪下手?” 问的人里,有做了多年后端的老工程师&#x…

📰

OpenRig AgentSpec 详解:agent.yaml 里 skills、guidance、hooks 与 profiles 完整指南

OpenRig AgentSpec 详解:agent.yaml 里 skills、guidance、hooks 与 profiles 完整指南 【免费下载链接】openrig Multi-agent harness that runs Claude Code and Codex together as one system 项目地址: https://gitcode.com/GitHub_Trending/op/openrig …

📰

SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0线上辅导班系统设计与源码解析

最近有朋友问我线上辅导班系统到底怎么做一个能交差、能演示、甚至能上线跑业务的版本,我直接把这套基于SpringBoot2Vue3MyBatis-PlusMySQL8.0的源码从数据库表到接口逻辑完整对着梳理了一遍。说实话,现在做Java Web项目最幸福的事情就是技术栈可以选得很…

📰

PoE供电科普:一篇文章讲透安防监控与无线AP的供电难题

刚接触安防监控和无线覆盖的朋友,大概率都遇到过这种场面:摄像头装好了,电源适配器却找不到合适的位置;AP装在天花板上,旁边根本没有插座。这个时候PoE供电就是救场的东西。但真正上手后发现,网上关于PoE的…

📰

马德拉酒:大航海时代炼成的不死之酒,工艺、选购与存储全解析

“Madeira”这名字,我最早是在一张调酒师的工作台上见到的。当时那位朋友拿着一瓶标签泛黄的甜型加强酒,跟我说:这酒是“不死的”,开瓶几个月也坏不了,还自带一股焦糖坚果味,像陈年白兰地和雪莉的混合体。我…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬