Django搭建个人博客教程
这是面向新人的Django搭建个人博客教程的项目代码。
教程为零基础的小白准备,目的是快速搭建一个博客网站。
教程传送门:
注:两个版本是完全相同的。需要留言请前往个人博客。
教程特点
- 零基础、免费、中文
- 基于最新的 Python 3.7、Django 2.1 和 Bootstrap 4 版本
- 完整项目代码,以及详细的注释
- 博主热情的技术支持
适合人群
- 拥有一台能开机的电脑
- 有一点点最基础的python编程知识
- 每天能抽出一个小时学习
不要犹豫,现在立刻开始Django的学习吧!
教程导航
章节编号与GitHub仓库分支(Branch)编号是对应的。
01 - 前言
- Django 简介 / 资源列表 / 提问须知
02 - 教程的开发环境
- 环境简介 / 安装 Python / 配置虚拟环境
- 安装 Django / 创建 Django 项目 / 运行 Django 服务器
- 代码编辑器 / 浏览器选择
03 - 创建 APP
- 认识项目结构 / 注册 APP / 配置访问路径
04 - 编写 Model
- Django 模式简介 / 模型简介
- 编写 Model / Model 字段分解
- 数据迁移
05 - View 视图初探
- 第一个视图
- 网站后台概念 / 创建管理员 / 注册 app
- 检视数据库
06 - View 及 Template
- 改写视图函数
- 编写模板 / 错误分析
- Debug 工具
07 - 使用Bootstrap改写模板
- 配置 Bootstrap 4
- 编写模板 / 模板继承
08 - 编写文章详情页面
- 详情页面视图 / 详情页面模板
- 优化网页入口 / 参数传递
09 - 使用Markdown书写文章
- 安装 Markdown
- 在视图中使用 Markdown / 模板渲染
- 代码高亮 / 故障排查 / 自定义样式
10 - 发布新文章
- 表单类 / 处理创建请求 / 获取数据
- csrf_token / 模板中的表单 / 优化写文章入口
11 - 删除文章
- get 方式删除文章 / post 方式删除文章
- 弹窗功能 / 再谈 CSRF
12 - 更新文章
- 更新文章视图 / 编写模板 / url 和入口
13 - 用户的登录和登出
- 用户管理简介 / 再谈表单类
- 登录视图 / Session 介绍 / 登录模板 / url 及其他设置
- 用户的登出
14 - 用户的注册
- 注册表单 / 注册视图 / 模板和 url
15 - 用户的删除
- 权限与视图 / 检查数据库
16 - 重置用户密码
- 安装三方库 / 使用库
- 配置邮箱 / 常见错误
17 - 拓展用户信息
- 拓展 User / 重建数据库
- 表单、视图和模板 / 修改 article 视图 / 配置后台
18 - 上传头像
- 必要配置 / 编写 MTV
19 - 文章分页
- Paginator 类 / 分页视图 / 模板编写
20 - 浏览量
- 修改模型 / 列表模板 / 详情模板 / 修改视图
- 鉴权
21 - 最热文章
- 重构视图 / 修改模板及测试
22 - 搜索文章
- 搜索逻辑 / get 和 post 的区别 / Q对象
- 面包屑组件 / 搜索框
23 - 文章目录
- 文章中的目录
- 任意位置的目录
24 - 评论
- 创建评论 app / 编写评论模型
- get_object_or_404() / 日期显示及管道符
25 - 课间休息
- 进阶内容介绍
26 - 基于类的视图
- 类视图简介 / 类视图与函数视图
- 通用视图 / 动态过滤 / 在类视图中添加上下文
- 混入类 / 详情页、编辑页视图
27 - 文章栏目
- 编写栏目模型 / 在列表中显示栏目
- 添加测试数据 / 重写文章列表 / 更新MTV
28 - 文章标签
- 安装 Django-taggit
- 修改模型 / 修改发表视图
- 标签过滤
29 - 文章标题图
- 用 Pillow 处理图片 / 模板与测试
30 - 富文本编辑器
- 安装 Django-ckeditor
- 在后台使用 ckeditor / 代码高亮
- 在前台使用 ckeditor / 宽度自适应
31 - 四个小功能
- 回到顶部浮动按钮 / 矢量图标 / 页脚沉底 / 粘性侧边栏
32 - 多级评论
- 安装 Django-mptt
- 理解树形结构 / 前端渲染 / 遍历树 / 加载 Modal
- Ajax 提交表单
33 - 消息通知
- 安装 django-notifications
- 消息通知用法简介
- UI 表现 / 理解已读与未读
34 - 锚点定位
- 理解锚点
- html 拼接 / 视图拼接 / 流动的数据 / 三元运算符
35 - 第三方登录
- 本地登录 / 美化模板
- GitHub 登录 / allauth 配置项
36 - 自动化测试
- 第一个测试 / 暴露 bug 的方法 / 运行单元测试 / 修复 bug
- 对视图的测试 / Selenium
37 - 日志记录
- 日志的组成
- 日志配置示例 / 复杂示例
- 日志分割 / 自定义日志
38 - 模板过滤器和标签
- 注册过滤器和标签
- 更人性化的时间 / 简单标签 / 包含标签
39 - 点赞功能
- 实现逻辑的探讨 / LocalStorage 介绍
- JS 与 Ajax / 利用调试接口
40 - 将项目部署到云服务器
- 配置服务器
- 远程连接 / 代码部署 / Nginx 配置 / Gunicorn 配置
- 解决遗留问题 / 后期运维 / 域名及优化
41 - 期末总结
- 接下来学什么 / 写在最后
42 - 小功能集合贴
- 快捷导航 / 页面定位
43 - 读者常见问题
教程快照
代码使用说明
确认你的电脑已经正确安装 Python 3.4 以上的版本。
下载项目后,在命令行中进入项目目录,并创建虚拟环境:
python -m venv env
运行虚拟环境(Windows环境):
env\Scripts\activate.bat
或(Linux环境):
source env/bin/activate
自动安装所有依赖项:
pip install -r requirements.txt
然后进行数据迁移:
python manage.py migrate
最后运行测试服务器:
python manage.py runserver
项目就运行起来了。
其他说明
数据库文件db.sqlite3
以及媒体文件夹media
中的内容是方便读者查看示例效果而存在的。
master版本管理员账号:dusai 密码:adminpassword
如果你想清除所有数据及媒体文件,将它们直接删除,并运行:
python manage.py createsuperuser
即可重新创建管理员账号。
联系方式
- 简单问题,请在杜赛的个人网站留言
- 复杂问题,请Email私信我:dusaiphoto@foxmail.com
一个人的学习是孤单的。欢迎扫码 Django交流QQ群、博主微信,寻找学伴一起进步吧!