一、任务
-
发表评论,显示评论列表
-
复习创建app,复习创建数据模型,数据迁移
-
复习自定义模板标签
二、复习
总结开发顺序
- 创建模块app,在 apps.py 中汉化模块
- 注册模块到项目的 settings.py 的 Installed Apps
- 写模型字段
- 数据迁移(先生成迁移文件,同步到数据库)
- 模型注册到 django admin后台,后台可以管理模型数据
- 需要使用表单的话,创建 forms.py:model, fields
- 如果需要在原有的页面添加部分显示数据,创建模板标签
- 写 form 对应的方法 comment,在 views.py里面,增加评论成功提醒消息。正确的话渲染当前文章的评论列表;不正确的话渲染页面 preview.html
- 写方法渲染的页面 preview.html
- comments 新建一个 urls.py ,绑定 url,注意写 app_name
- blogproject 的 urls.py 引入 comments 的 urls
- base.html 添加显示消息的占位
- 显示某文章的所遇评论
创建模板标签三步走
- 在对应的 app 内创建 templatetags 的 Python 包,create xx_extras.py 存放模板标签的代码。标签三步走:
- form django import template
- 导入对应的模型或者form模型
- register = template.Library()
- 定义标签函数, @register.inclusion_tag(‘app_name/xx.html’, takes_context=True)
- 定义模板标签的方法:templates下创建属于这个 app 的文件夹,其下创建标签对应的页面
- 需要使用模板标签的页面,先 load 模板标签,再使用
三、问题
- Pycharm 中怎么配置 django 的代码补全
- 高手在写代码的时候是怎么快速移动鼠标的
- 评论回复不能显示是针对哪个的回复
数据迁移,什么时候需要数据迁移呢- 创建了数据库模型就要迁移数据库
- 模型字段发生变化
- 迁移分两次,第一次是生成迁移文件,第二次是变动同步到数据库
- 功能扩展:
- 不登录的状态下评论,就像这里做的一样,在详情页下写一个提交评论的表单
- 登录状态下直接文章下面层级评论
- {% csrf_token %} 什么时候情况下使用?
- 这个模板标签在表单渲染时会自动渲染为一个隐藏类型的 HTML input 控件,其值为一个随机字符串,作用主要是为了防护 CSRF(跨站请求伪造)攻击。{% csrf_token %} 在模板中渲染出来的内容大概如下所示:
<input type="hidden" name="csrfmiddlewaretoken" value="KH9QLnpQPv2IBcv3oLsksJXdcGvKSnC8t0mTfRSeNIlk5T1G1MBEIwVhK4eh6gIZ">
- <label for="{{ form.name.id_for_label }}">{{ form.name.label }}:</label> for属性的值?
- {{ 模板变量 }} {% 模板标签 %} 区别
什么时候使用模板标签- 渲染一个局部的 HTML 页面,不用修改相关的方法,造成耦合
- models 有哪些自带的方法,可以重写的,比如 save, get_absolute_url
- bootstrap 组件?alter
- 什么时候应该创建一个 app
附上 Gitee 地址:https://gitee.com/langxing/HelloDjango-blog-tutorial