Django 学习 Blog 实操 12 --- 发表评论,显示评论列表

一、任务

  • 发表评论,显示评论列表

  • 复习创建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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sapphire~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值