Django网站大致创建流程
1. 创建项目
功能:创建 Django 项目主体
需要的文件 / 目录:
manage.py
项目配置目录/
settings.py
urls.py
asgi.py
wsgi.py
主要作用:
settings.py:项目总配置
urls.py:项目总路由
manage.py:运行项目、创建 app、迁移数据库
2. 创建 app
功能:按模块拆分网站功能
常见 app:
accounts:用户注册、登录、退出
notes:学习笔记、评论、分类、搜索
chat:聊天室、聊天记录
dashboard:个人主页或控制台
创建 app 后需要改:
settings.py
把 app 添加到:
INSTALLED_APPS
3. 配置总路由
功能:让项目知道不同网址交给哪个 app 处理
需要改:
项目配置目录/urls.py
常见配置:
/ 交给 notes
/accounts/ 交给 accounts
/chat/ 交给 chat
/admin/ Django后台
4. 用户注册功能
功能:用户创建账号
需要添加 / 修改:
accounts/forms.py
accounts/views.py
accounts/urls.py
accounts/templates/accounts/register.html
文件作用:
forms.py:定义注册表单
views.py:处理注册逻辑
urls.py:配置注册网址
register.html:注册页面
5. 用户登录功能
功能:用户输入账号密码登录
需要添加 / 修改:
accounts/views.py
accounts/urls.py
accounts/templates/accounts/login.html
文件作用:
views.py:验证用户名和密码
urls.py:配置登录网址
login.html:登录页面
6. 用户退出功能
功能:清除登录状态
需要添加 / 修改:
accounts/views.py
accounts/urls.py
base.html 或 首页模板
文件作用:
views.py:写退出逻辑
urls.py:配置退出网址
base.html:添加退出按钮
7. 学习笔记功能
功能:发布学习笔记、查看笔记列表、查看详情、编辑、删除
需要添加 / 修改:
notes/models.py
notes/forms.py
notes/views.py
notes/urls.py
notes/templates/notes/note_list.html
notes/templates/notes/note_detail.html
notes/templates/notes/note_form.html
notes/templates/notes/note_confirm_delete.html
文件作用:
models.py:定义笔记数据表
forms.py:定义笔记表单
views.py:处理增删改查逻辑
urls.py:配置笔记相关网址
note_list.html:笔记列表页面
note_detail.html:笔记详情页面
note_form.html:发布 / 编辑笔记页面
note_confirm_delete.html:删除确认页面
8. 笔记分类功能
功能:给笔记添加分类,比如 Django、Python、英语、网安
需要修改:
notes/models.py
notes/forms.py
notes/views.py
notes/templates/notes/note_list.html
notes/templates/notes/note_detail.html
文件作用:
models.py:给 Note 添加 category 字段
forms.py:让发布 / 编辑笔记时可以选择分类
views.py:处理分类筛选
note_list.html:显示分类和筛选框
note_detail.html:显示当前笔记分类
修改模型后需要执行:
makemigrations
migrate
9. 搜索功能
功能:根据标题或内容搜索笔记
需要修改:
notes/views.py
notes/templates/notes/note_list.html
文件作用:
views.py:接收搜索关键词并查询数据库
note_list.html:添加搜索输入框和搜索按钮
10. 评论功能
功能:在笔记详情页下面发表评论
需要添加 / 修改:
notes/models.py
notes/forms.py
notes/views.py
notes/templates/notes/note_detail.html
文件作用:
models.py:定义 Comment 评论表
forms.py:定义评论表单
views.py:处理评论提交和评论查询
note_detail.html:显示评论区和评论表单
修改模型后需要执行:
makemigrations
migrate
11. 聊天室功能
功能:用户可以进入聊天室实时聊天
需要添加 / 修改:
chat/models.py
chat/views.py
chat/urls.py
chat/consumers.py
chat/routing.py
chat/templates/chat/room.html
项目配置目录/asgi.py
settings.py
项目配置目录/urls.py
文件作用:
models.py:保存聊天记录
views.py:打开聊天室页面
urls.py:配置普通页面网址
consumers.py:处理 WebSocket 聊天逻辑
routing.py:配置 WebSocket 路由
room.html:聊天室页面
asgi.py:配置 WebSocket 支持
settings.py:配置 channels、daphne、CHANNEL_LAYERS
项目 urls.py:接入 chat app
修改模型后需要执行:
makemigrations
migrate
12. 聊天记录持久化
功能:刷新页面后还能看到以前的聊天记录
需要添加 / 修改:
chat/models.py
chat/consumers.py
chat/views.py
chat/templates/chat/room.html
文件作用:
models.py:定义 ChatMessage 表
consumers.py:收到消息后保存到数据库
views.py:进入聊天室时读取历史消息
room.html:显示历史聊天记录
13. 自定义中间件
功能:在请求进入 view 前后执行额外逻辑,比如访问日志
需要添加 / 修改:
项目配置目录/middlewares.py
settings.py
文件作用:
middlewares.py:写自定义中间件类
settings.py:把中间件加入 MIDDLEWARE
14. 网站美化
功能:统一页面样式,让网站看起来更像完整项目
需要添加 / 修改:
templates/base.html
static/css/style.css
各个页面模板
常见页面:
notes/templates/notes/index.html
notes/templates/notes/note_list.html
notes/templates/notes/note_detail.html
notes/templates/notes/note_form.html
notes/templates/notes/note_confirm_delete.html
accounts/templates/accounts/login.html
accounts/templates/accounts/register.html
chat/templates/chat/room.html
文件作用:
base.html:公共页面骨架、导航栏
style.css:统一样式
各页面模板:继承 base.html,填充自己的内容
需要配置:
settings.py
主要配置:
TEMPLATES 的 DIRS
STATIC_URL
STATICFILES_DIRS
15. 数据库迁移
功能:把 models.py 里的模型变化同步到数据库
只要改了:
models.py
一般都要执行:
makemigrations
migrate
常见改动:
新增模型
新增字段
修改字段
删除字段
16. Django网站整体文件关系
models.py
定义数据库表
forms.py
定义用户提交的表单
views.py
写功能逻辑
urls.py
配置网址和 view 的对应关系
templates
写 HTML 页面
static
放 CSS、JS、图片
settings.py
写项目配置
asgi.py
支持 WebSocket
admin.py
注册模型到 Django 后台
17. Django网站基本流程
用户访问网址
↓
urls.py 匹配路由
↓
views.py 执行逻辑
↓
models.py 查询或保存数据库
↓
forms.py 校验用户提交的数据
↓
templates 渲染页面
↓
浏览器显示结果
18. 当前项目功能总结
这个学习记录网站大概包含:
用户注册
用户登录
用户退出
发布学习笔记
查看笔记列表
查看笔记详情
编辑自己的笔记
删除自己的笔记
笔记分类
笔记搜索
评论功能
聊天室
聊天记录持久化
页面美化
自定义中间件
对应主要 app:
accounts:用户系统
notes:笔记、分类、搜索、评论
chat:聊天室、聊天记录