首页 > 其他 > 详细

仿优酷项目小疑问点

时间:2019-10-09 20:24:21      阅读:108      评论:0      收藏:0      [点我收藏+]
  • 为什么要用类绑定方法: 就相当于类的一个方法,所以不需要类实例化产生对象

  • 查询、插入和更新:先写出原生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语句,然后拆分)

?

仿优酷项目小疑问点

原文:https://www.cnblogs.com/michealjy/p/11644092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!