1. form组件梳理 注册功能: 1. 利用form组件生成HTML代码 2. 使用AJAX提交数据,并且在页面显示错误信息 3. 后端还是使用form做校验 额外补充: 滑动验证码 前端预览头像 2. 站点主页 - Django admin简单使用 1. 告诉admin 我有哪一些表 1. 在app/admin.py文件中,把表注册一下 2. 只有超级用户才能登陆admin管理后台 3. blank=True 控制django admin 可以不填 auth模块再讲解 详见今天auth_demo示例代码 - Bootstrap布局 - 2 8 2布局 - media的配置 - ORM查询操作 - 基于对象的查询 - 基于QuerySet的查询 当查询比写入操作多的时候,我们尽量减少跨表查询,节省时间。 文章表的评论数据和点赞踩灭数据 是通过额外字段写在文章表里的
1. 分组和聚合 https://www.cnblogs.com/liwenzhou/p/8660826.html 1. 分组 ORM中values或者values_list 里面写什么字段,就相当于select 什么字段 ret = models.Employee.objects.all().values("dept", "age") 相当于: SELECT `employee`.`dept`, `employee`.`age` FROM `employee` LIMIT 21; args=() 2. ORM中 annotate 前面是什么就按照什么分组! from django.db.models import Avg ret = models.Employee.objects.values("province").annotate(a=Avg("salary")).values("province", "a") 相当于: SELECT `employee`.`province`, AVG(`employee`.`salary`) AS `a` FROM `employee` GROUP BY `employee`.`province` ORDER BY NULL LIMIT 21; args=() 3. extra --> 在执行ORM查询的时候执行额外的SQL语句 # 查询person表,判断每个人的工资是否大于2000 ret = models.Person.objects.all().extra( select={"gt": "salary > 2000"} ) 相当于: SELECT (salary > 2000) AS `gt`, `person`.`id`, `person`.`name`, `person`.`salary`, `person`.`dept_id` FROM `person` LIMIT 21; args=() 4. 直接执行原生的SQL语句,类似pymysql的用法 from django.db import connection cursor = connection.cursor() # 获取光标,等待执行SQL语句 cursor.execute("""SELECT * from person where id = %s""", [1]) row = cursor.fetchone() print(row) 2. 个人站点首页 - 分组和聚合查询 1. 文章分类 2. 标签分类 3. 日期归档 1. MySQL内置的方法:date_format(字段名, "%Y-%m") 2. extra() --> 执行额外的原生SQL语句 ret = models.Article.objects.filter(user=user).extra( select={"archive_ym": "date_format(create_time,'%%Y-%%m')"} ).values("archive_ym").annotate(c=Count("nid")).values("archive_ym", "c")
sql: 子查询 join查询 分组查询(单表分组,多表分组) ORM: 跨表查询 翻译sql Queryset.annotate() # Publish.objects.all().annotate() 博客系统 个人站点(ORM查询------跨表查询与分组查询) --- 文章详细页 1 一次请求的完整流程 ----response ----伴随着其他请求 2 render()到底渲染的什么? 作业1 一旦js文件变为静态文件,点赞的js代码如何重构 3 json 4 点赞 作业2: 点赞流程 博客(2) ****** Xadmin(4)****** crm(3) ****** restframework (3) ****** vue(3) ****** 路飞(5)****** (1 月) flask 爬虫 linux ..... 点赞 点赞或者评论者就是当前登录人 1 绑定事件 2 携带data={article_id,is_up}发送Ajax请求 3 对应的视图函数要生成一个赞或者灭记录 4 响应结果给ajax 5 Ajax的success处理 知识点: 什么是json? +-------------------+---------------+ | Python | JSON | +===================+===============+ | dict |objects'{"":""}'| +-------------------+---------------+ | list, tuple | array[] | +-------------------+---------------+ | str | string '""' | +-------------------+---------------+ | int, float | 'number' | +-------------------+---------------+ | True | 'true ' | +-------------------+---------------+ | False | 'false' | +-------------------+---------------+ | None | 'null' | +-------------------+---------------+ user article_id is_up 1 1 True 1 1 False