码迷,mamicode.com
首页 > 其他好文 > 详细

1104课堂小结

时间:2019-11-04 19:21:35      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:json   是什么   att   djang   创建   数据表   继承   跨平台   冗余   

exec

exec是什么

exec 是一个python的内置模块

exec的作用

可以把‘字符串形式’的python代码,添加到全局或者局部名称空间中

exec的使用方法

  1. 参数一:字符串形式的python代码
  2. 参数二:全局名称空间字典
  3. 参数三:局部名称空间字典

调用exec()

元类

什么是元类

元类就是类的类,Chinese类的类是type,type是所有类的类,所以type就是一个元类

元类的作用

元类可以帮我们控制类的创建和调用

怎么自定义创建元类

  1. 自定义一个元类,继承type,派生出自己的属性和方法

  2. 给需要使用的类,通过metaclass指定自定义好的元类

    如:class chinese(mataclass=‘自定义的元类‘)

优酷架构

ATM架构

优点:数据可以跨平台

缺点:不能存对象,也不能直接获取对象

? 不能通过“对象.属性”的方式存取值

? 存储速度比pickle慢

选课系统架构

优点:可以通过“对象.属性”的方式存取值

? 能存对象,也能直接获取对象

? 如:pickle

缺点: 不能跨平台

优酷架构

  • 数据层
    • 存储对象 ---->dict ----> json ----> Mysql
    • MySQL ----> Json ----> dict ----> 获取对象

ORM

对象关系映射----> 映射到数据库MYSQL中的数据表

类名 ----> 表名

对象 ----> 一条记录

对象.属性 ----> 字段

模拟Django的ORM ,为了将数据库的增删改查全部封装成一个个的方式,比如save,delete,update,select

ORM三个问题

  1. 解决代码冗余问题

    解决方式:继承一个父类,父类中定义一个__init__

  2. 无法预测每一张表中的字段是什么,无法通过父类的__init__解决问题

    解决方法:通过继承字典内部的__init__,可以接受任意个数的关键字参数

  3. 继承字典的类实例化的对象,无法通过“对象.属性”的方式存取值

    解决方法:通过__setattr____getattr__来实现,让字典对象与普通对象一模一样,并且具备字典原有的特性

1104课堂小结

标签:json   是什么   att   djang   创建   数据表   继承   跨平台   冗余   

原文地址:https://www.cnblogs.com/faye12/p/11794065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!