zoukankan      html  css  js  c++  java
  • 仿优酷项目小疑问点

    • 为什么要用类绑定方法: 就相当于类的一个方法,所以不需要类实例化产生对象(查询功能不需要__init__, 但是插入和更新都需要对表进行更新)

    • 查询、插入和更新:先写出原生sql,然后再根据需要传的参数,再在上面写

    • sql语句中,当需要输入字符串(带引号的数据)时,需要考虑sql注入问题,例如:select * from user where name=‘mike’ ——— sql = ‘select * from %s where %s=?‘ %(table_name, key) (空一行) sql=sql.replace(‘?’, ‘%s’) 就避免了这个问题,自己拼接一定有sql注入问题,但是用占位符填充后,交给pymysql处理,就不会有这个问题了

    • 为什么需要反射取值,因为循环拿到的v是字段类型对象,只是点出来,得到的不是值,加v.default,是因为如果有值就取值,如果没有就取默认值

    • execute中传入的args值可以是元组,列表或者字典

    • 装饰器为什么用@wraps

    问题:我用obj = User(student_name=‘tank’)实例化一个User对象,但是obj.student_id得到的None

    解答:出发点就是错的,首先应该是通过查询得到一个元素为对象的列表,然后再取第一个值,这样得到的就是一个对象,这个时候在进行.取值就是正确的了

    ORM思路:

    ​ 字段类型(字段名,字段类型,是否主键,默认值)

    ​ 整数+字符串,

    ​ 元类:控制表类(表名,唯一主键和字段名称空间)

    ​ 表父类:继承字典类和元类

    ​ 首先重写字典类,点取值和点赋值,然后绑定方法有select, save,sql_update(注意先写出原生sql语句,然后拆分)

  • 相关阅读:
    JavaScript的数据类型和运算符总结
    html&css精华总结
    lambda表达式&map&filter&yield
    tp5.1 order函数排序无效和orderRaw自定义处理排序
    tp5.1 多对多关联,添加中间表自动时间戳
    mysql索引类型和索引方法
    a标签跨域下载文件,解决download失效问题
    js读取input[type=file]图片,并实时预览
    如何禁止浏览器自动填充
    php 一维数组的合并和去重
  • 原文地址:https://www.cnblogs.com/michealjy/p/11644092.html
Copyright © 2011-2022 走看看