• form 组件


    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
  • 相关阅读:
    Excel jar包冲突 java.lang.NoSuchFieldError: DEFAULT
    js中foreach有三种写法,你知道吗
    上期CTP
    Visual Status各个版本官网下载
    电脑重装环境配置
    vue父子页面传值
    MySQL该使用哪种CPU架构服务器?
    【沥血整理】灰度(二值)图像重构算法及其应用(morphological reconstruction)。
    【短道速滑九】仿halcon中gauss_filter小半径高斯模糊优化的实现
    AVX图像算法优化系列一: 初步接触AVX。
  • 原文地址:https://www.cnblogs.com/shangchunhong/p/9391893.html
Copyright © 2020-2023  润新知