2、Django基础二

  • python: 3.6.5

  • django: 2.1.8

1. 项目准备

1.1 配置虚拟环境

pip3 install pipenv
mkdir test && cd test/
pipenv --python 3.6.5
pipenv shell

1.2 安装Django

((test) ) [root@k8s test]# pipenv install django==2.1.8

1.3 创建项目

((test) ) [root@k8s test]# django-admin startproject project

1.4 修改时区

''' settings.py
ALLOWED_HOSTS = ["*"]

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'
'''

1.5 创建超级管理员

1.6 创建APP应用及注册

2. 项目

2.1 数据模型分析

  • 分类: 一个分类下有多个文章

  • 标签: 一个文章下有多个标签,一个标签下有多个文章

  • 文章: 标题、摘要、内容、创建时间、修改时间、归属分类、归属标签、作者

2.2 数据模型创建

  • blog/models.py

2.3 数据库迁移

2.4 Admin后台注册模型

  • blog/admin.py

3. Django 博客首页 和 详情页

3.1 URL分析

  • 首页: 域名根路径

  • 文章: 每个文章对应不同的URL

    • 当用户访问 <网站域名>/post/1/ 时,显示的是第一篇文章的内容,

    • 当用户访问 <网站域名>/post/2/ 时,显示的是第二篇文章的内容。这里数字代表了第几篇文章,

3.2 创建 urls.py 文件

  • blog/urls.py

3.3 首页||文章详情视图

  • blog/views.py

3.4 Model中自定义ID方法

  • blog/models.py

3.5 项目 urls.py 添加 APP 路径映射

  • project/urls.py

3.6 html 文件

3.5 设置静态文件static和模板templates文件

  • 这里 static 与 项目同级, 存放静态文件

  • 这里 templates 与 项目同级, 存放 html 文件

4. Admin后台集成 markdown 格式编写

  • 参考: https://pypi.org/project/django-mdeditor/

4.1 安装django-mdeditor

4.2 注册 mdeditor APP

  • project/settings.py

4.3 添加 mdeditor URL

  • project/urls.py

4.4 修改数据库字段类型

  • blog/models.py

4.5 生成数据文件迁移到数据库

4.6 测试是否正常

4.7 django-mdeditor 错误

我们启动项目,进入文章发布页面。提示出错:

解决办法: 注释这一行

5. 渲染代码高亮显示,自动生成侧边目录

5.1 安装插件

5.2 修改原 view.detail 视图

5.3 修改详情页: detail.html

代码高亮: https://highlightjs.org/

Github: https://github.com/highlightjs/highlight.js/tree/main/src/styles

网络 CSS 文件: https://unpkg.com/browse/@highlightjs/cdn-assets@11.3.1/styles/

5.4 测试效果

5.5 界面太丑,使用开源摸版(百度一下)

例如: (自行删除,和继承)

6. 定制摸版标签

6.1 定制摸版标签

我的APP名是blog, 那我这里创建的 blog_template_tags.py ,存放摸版的标签 (如果APP多并且需要多个摸版标签的,可以单独创建一个 python 的文件包,所有的摸版标签放在单独的文件内)

  • blog/blog_template_tags.py

6.2 注册摸版标签

  • project/settings.py

6.3 使用摸版标签

  • templates/blog/base.html

6.4 测试效果

Last updated