2.第一个 Django 项目理解项目结构与运行机制
在上一章中,你已经完成了所有准备工作: 安装了 Python,配置了虚拟环境,安装了 Django,并且明确了我们要构建的应用——学生成绩管理系统。
现在,是时候写下第一行真正属于你的 Django 代码了。
在本章中,我们不会急着设计数据库,也不会讨论复杂的业务逻辑。我们的目标只有一个:
让 Django 项目成功跑起来,并理解它在做什么。
只要你能理解这一点,后面的内容都会顺理成章。
1.创建第一个 Django 项目
请先打开终端,进入你准备存放项目的目录,然后执行:
django-admin startproject config .
注意: 不要忘记最后的 "."。
如果一切顺利,你会看到一个名为 config 的目录被创建出来。

指令解析:
django-admin startproject 项目名称 项目路径: 这是 Django 的内置命令,用于创建一个标准的项目目录结构。
在很多教程中,你会看到例如"django-admin startproject studentsys"形式,那么生成的目录如下:
StudentManagement/
└── studentsys/ <-- 自动生成的父级目录
├── manage.py
└── studentsys/ <-- 实际的代码配置目录
├── __init__.py
├── settings.py
└── ...
studentsys是项目文件,但是外层还有一个我们前面创建的StudentManagement。“嵌套文件夹”的形式让目录结构显得很臃肿。
此外,studentsys目录下的同名的studentsys是配置文件,作为配置文件这个名字又很奇怪。
所以,我们使用了指令:“django-admin startproject config . ”
StudentManagement/ <-- 你当前的终端所在位置
├── manage.py <-- 直接生成在根目录
└── config/ <-- 实际的代码配置目录
├── __init__.py
├── settings.py
└── ...
使用上面的形式,路径更加简介,符合主流习惯,并且可以避免重名的困惑。
此刻,很多初学者会产生一种不安感: “这么多文件,我应该从哪里开始?”
别着急,我们一个一个来看。
2.Django 项目结构解析
进入项目目录,你会看到类似下面的结构:
StudentManagement/
├── manage.py
└── config/
├── __init__.py
├── settings.py
├── urls.py
├── asgi.py
└── wsgi.py
这正是 Django 项目的“骨架”。
manage.py 是做什么的?
manage.py 是你与 Django 项目交互的主要入口。
你将通过它来:
- 启动开发服务器
- 创建应用(app)
- 进行数据库迁移
- 创建管理员账户
你可以把它理解为:项目的控制面板。
几乎所有命令,都会从这里开始。
Config 目录是什么?
config 目录,是真正的项目配置目录。
它负责:
- 全局配置
- URL 路由入口
- Web 服务启动接口
初学阶段,你只需要重点关注三个文件:
settings.pyurls.pymanage.py
3.启动开发服务器
现在,让我们做一件非常重要的事情: 启动 Django 自带的开发服务器。
在项目根目录下执行:
python manage.py runserver
如果你看到类似下面的输出:
Starting development server at http://127.0.0.1:8000/
恭喜你 🎉 你的第一个 Django 项目已经成功运行了。
打开浏览器,访问:
http://127.0.0.1:8000/

这个页面看起来很简单,但它背后的意义非常重要。
4.Django 在背后做了什么?
当你访问 http://127.0.0.1:8000/ 时,发生了以下事情:
- 浏览器发送 HTTP 请求
- Django 接收到请求
- Django 查找 URL 路由规则
- 找到对应的视图函数
- 返回 HTTP 响应

这五个步骤,几乎涵盖了 Django Web 开发的全部核心思想。
接下来的章节,我们会反复回到这个流程。
5.settings.py:项目的大脑
打开 settings.py,你会看到大量配置项。
现在不需要全部理解,但有几个你必须知道的:
INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
这里列出了当前项目启用的所有应用。
Django 本身就自带了一些非常强大的功能:
- 管理后台
- 用户认证
- 会话管理
在后续章节中,我们会把自己的应用也加进这里。
MIDDLEWARE
Middleware 是 Django 的“中间层”。
你可以把它理解为:
在请求到达视图之前、响应返回浏览器之前,执行的一系列处理步骤。
例如:
- 安全检查
- 会话处理
- CSRF 防护
现在只需要知道它的存在即可。
DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
默认情况下,Django 使用 SQLite 数据库。
这是一个非常适合学习和原型开发的数据库,不需要额外安装,开箱即用。
我们的学生成绩系统,在前期就会基于它来构建。
6.urls.py:请求的入口
打开 studentsys/urls.py:
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
这是整个项目的 URL 总入口。
意思是:
- 访问
/admin/ - 交给 Django 自带的后台系统处理
目前只有这一条路由,但很快,我们会为学生成绩系统添加更多路径。
7.Django 的设计哲学
在这一章的最后,我想简单说一下 Django 的设计理念。
Django 有一句非常著名的口号:
The web framework for perfectionists with deadlines
它希望你:
- 少写重复代码
- 专注业务逻辑
- 快速构建可用系统
这也是为什么 Django 特别适合用来开发管理系统、后台系统,以及像“学生成绩管理”这样的典型应用。
8.本章小结(Summary)
在这一章中,你已经:
- 创建了第一个 Django 项目
- 成功运行了开发服务器
- 理解了项目的基本结构
- 对 Django 的工作流程有了整体认识
请你现在停下来,亲手完成以下三件事:
- 再次运行一次
runserver - 打开
settings.py和urls.py阅读代码 - 尝试理解每个文件的大致职责
在下一章中,我们将创建第一个 Django 应用(App),并正式开始构建学生成绩管理系统的核心功能。
现在,一切都已经准备好了。
【大熊课堂精品课程】
Python零基础入门动画课: https://www.bilibili.com/cheese/play/ss7988
Django+Vue:全栈开发: https://www.bilibili.com/cheese/play/ss8134
PyQT6开发桌面软件: https://www.bilibili.com/cheese/play/ss12314
Python办公自动化: https://www.bilibili.com/cheese/play/ss14990
Cursor AI编程+MCP:零基础实战项目课: https://www.bilibili.com/cheese/play/ss105194189
Pandas数据分析实战: https://www.bilibili.com/cheese/play/ss734522035
AI大模型+Python小白应用实战: https://www.bilibili.com/cheese/play/ss3844