Giter VIP home page Giter VIP logo

django_blog_tutorial's Introduction

Build Status

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

即可重新创建管理员账号。

联系方式

一个人的学习是孤单的。欢迎扫码 Django交流QQ群、博主微信,寻找学伴一起进步吧!

django_blog_tutorial's People

Contributors

stacklens avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.