Django Blog开源项目运行&解读
任务理解
-
运行 DjangoBlog 项目(https://gitee.com/lylinux/DjangoBlog)
-
做一个项目介绍,重点解释 MVT 模式 分别做了什么
-
参考 django-vue3-admin 作为更完整的项目示例来理解(https://gitee.com/huge-dream/django-vue3-admin)
第一部分:运行 DjangoBlog 项目
第一步:克隆项目到本地
在命令提示符中执行:
cd C:\Users\25412
git clone https://gitee.com/lylinux/DjangoBlog.git
cd DjangoBlog

第二步:创建虚拟环境(推荐)
python -m venv venv
venv\Scripts\activate
激活后,命令提示符前面会出现 (venv)。
第三步:安装依赖
pip install -r requirements.txt

如果提示某些包安装失败,可以逐个安装:
pip install django==4.0 mysqlclient ...
安装好后进入 DjangoBlog 目录并激活虚拟环境
cd C:\Users\25412\DjangoBlog
venv\Scripts\activate
第四步:配置数据库(使用 SQLite 简化)
由于我们还没有安装 MySQL,先用 SQLite 运行。打开 djangoblog/settings.py:
notepad djangoblog\settings.py
DjangoBlog 默认使用 MySQL,但为了方便测试,可以先改用 SQLite(和你之前学的投票应用一样)。
打开 djangoblog/settings.py,找到 DATABASES 配置,修改为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
第五步:初始化数据库
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser

按提示创建管理员账号。
第六步:生成测试数据(可选)
python manage.py create_testdata
第七步:运行服务器
python manage.py runserver
前台首页:http://127.0.0.1:8000/
后台管理:http://127.0.0.1:8000/admin/(用刚才创建的账号登录)
项目介绍(MVT 分析)
基于你运行的 DjangoBlog,以下是 MVT 模式的具体分析
1. Model(模型层)—— 定义数据结构
位置:blog/models.py、comments/models.py、accounts/models.py
| 模型类 | 作用 | 主要字段 |
|---|---|---|
Article |
文章 | title(标题)、content(内容)、pub_date(发布时间)、status(状态:p=发布) |
Category |
分类 | name(分类名称)、parent_category(父分类) |
Tag |
标签 | name(标签名称) |
Comment |
评论 | author(评论者)、content(评论内容)、article(所属文章) |
BlogUser |
用户 | 扩展 Django 内置用户 |
2. View(视图层)—— 处理业务逻辑
位置:blog/views.py
| 视图类 | URL | 功能 |
|---|---|---|
IndexView |
/ |
首页:展示文章列表,支持分页 |
ArticleDetailView |
/article/<year>/<month>/<day>/<id>.html |
文章详情:显示完整文章和评论 |
CategoryDetailView |
/category/<name>.html |
分类页面:按分类筛选文章 |
TagDetailView |
/tag/<name>.html |
标签页面:按标签筛选文章 |
ArchivesView |
/archives.html |
归档页面:按年月展示文章 |
3. Template(模板层)—— 控制页面显示
位置:templates/blog/
| 模板文件 | 对应视图 | 功能 |
|---|---|---|
article_index.html |
IndexView |
首页布局,循环展示文章卡片 |
article_detail.html |
ArticleDetailView |
文章详情页,显示标题、内容、评论区 |
base.html |
所有页面继承 | 基础模板,包含导航栏、页脚 |
在 DjangoBlog 中,MVT 分别做了什么?
| 组件 | 在 DjangoBlog 中的具体作用 | 对应代码位置 |
|---|---|---|
| Model(模型) | 定义博客的数据结构:文章、分类、标签、评论等。每个模型对应数据库中的一张表。 | blog/models.py 中的 Article、Category、Tag、Comment 等类 |
| View(视图) | 处理用户请求:首页展示文章列表、文章详情页、分类筛选、搜索功能等。视图从模型获取数据,传递给模板。 | blog/views.py 中的 index、detail、search 等函数或类 |
| Template(模板) | 控制页面显示:HTML 结构、文章列表循环、分页、侧边栏组件等。模板接收视图传递的数据进行渲染。 | templates/blog/ 目录下的 .html 文件,如 index.html、detail.html |
4. MVT 协作流程(以首页为例)
-
用户访问:
http://127.0.0.1:8000/ -
URL 路由(
djangoblog/urls.py)匹配到blog.urls -
View 调用
IndexView,通过get_queryset()从数据库获取文章列表 -
View 将文章列表传递给
article_index.html模板 -
Template 渲染 HTML,显示文章标题、内容摘要、发布日期
-
浏览器呈现完整页面给用户
第三部分:参考 django-vue3-admin 项目
django-vue3-admin 是一个更完整的项目,展示了 Django 作为后端 API 配合 Vue3 前端的企业级开发模式。你可以通过阅读它的文档和代码来理解:
| 对比项 | DjangoBlog | django-vue3-admin |
|---|---|---|
| 架构 | 传统 Django MVT(前后端不分离) | Django REST Framework + Vue3(前后端分离) |
| 前端 | Django 模板 | Vue3 + TypeScript + Element Plus |
| 权限控制 | 基础用户权限 | RBAC 权限模型,列级别权限 |
| 用途 | 博客系统 | 企业级后台管理平台 |
https://gitee.com/f23016209/django-blog将代码上传至Gitee
新建一个仓库为 DjangoBlog 单独创建一个新仓库,这样两个项目分开管理更清晰
第一步:在 Gitee 新建仓库
登录 Gitee,点击右上角 + → 新建仓库
填写信息:
仓库名称:DjangoBlog
仓库介绍:DjangoBlog 博客系统
开源许可证:选择 MIT(可选)
初始化仓库:不要勾选任何选项(因为我们要上传已有代码)点击 创建
第一步:确认当前在 DjangoBlog 目录
cd C:\Users\25412\DjangoBlog
第二步:初始化 Git 仓库(如果还没做)
git init
第三步:配置用户信息
git config --global user.name "你的账号名"
git config --global user.email "你的邮箱"
第四步:添加所有文件
git add .
第五步:提交到本地仓库
git commit -m "DjangoBlog 博客系统 - 完整代码"
第七步:查看当前远程仓库地址
git remote -v
第八步:删除错误的远程地址
git remote remove origin
第九步:添加你自己的仓库地址
git remote add origin https://gitee.com/f23016209/django-blog.git
第十步:确认修改成功
git remote -v
应该显示:

第十一步:推送代码
git push -u origin master

推送成功后,刷新 https://gitee.com/f23016209/django-blog 就能看到代码了!

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)