当前位置: 首页 > news >正文

安徽网站建设公司网站建设优质公司

安徽网站建设公司,网站建设优质公司,wordpress编辑增强,网站还能赚钱吗python 实现对数据库的ORM 映射 如果使用pymysql 操作数据库 不借助框架的话#xff0c;频繁写sql语句, 的确比较麻烦 这里借助 type 元类 对 数据表类实现了 与mysql之间的 映射 直接上代码 import pymysqldef conn_database_execute(sql_str):conn pymysql.connect(host…python 实现对数据库的ORM 映射 如果使用pymysql 操作数据库 不借助框架的话频繁写sql语句, 的确比较麻烦 这里借助 type 元类 对 数据表类实现了 与mysql之间的 映射 直接上代码 import pymysqldef conn_database_execute(sql_str):conn pymysql.connect(hostlocalhost, port3306, userroot, password123, databaseit_test,charsetutf8)cus conn.cursor()get_exist_tables show tables;cus.execute(get_exist_tables)ret cus.fetchall()print(ret)if sql_str.startswith(create):sql_str_list sql_str.split( )print(sql_str_list)table_name sql_str_list[2]if not (table_name,) in ret:print( create a table )cus.execute(sql_str)else:cus.execute(sql_str)print()print(sql_str)print()cus.close()conn.close()class MetaClassModel(type):def __new__(cls, cls_name, args, kwargs):mapping dict()field_name_explain dict()for k, v in kwargs.items():if isinstance(v, tuple):mapping[k] vfield_name_explain[ v[0] ] v[1]for k in mapping.keys():kwargs.pop(k)kwargs[mapping_] mapping# mapping_ {# user_id (user_id, int unsigned auto_increment primary key not null),# name (name, varchar(20))# age (age, int unsigned)# }kwargs[table_] cls_nameif cls_name ! Model:sql_str_1 for field_name, field_explain in field_name_explain.items():print(type(field_name))print(type(field_explain))sql_str_1 field_name field_explain ,sql_str_1 sql_str_1[:-1]create_sql_str create table %s (%s); %(cls_name, sql_str_1)print(create_sql_str)conn_database_execute(create_sql_str)return type.__new__(cls, cls_name, args, kwargs)class Model(metaclassMetaClassModel):def __init__(self, **kwargs):for name, value in kwargs.items():setattr(self, name, value)def save(self):files []args []for key, vaule in self.mapping_.items():files.append(vaule[0])# 获取通过构造方法 里面 setattr设置的参数valueargs.append(getattr(self, key, None))args_temp list()for temp in args:if isinstance(temp, int):args_temp.append(str(temp))elif isinstance(temp, str):args_temp.append(%s%temp)sql_str insert into %s (%s) values (%s);%(self.table_, ,.join(files), ,.join(args_temp))print(sql_str)conn_database_execute(sql_str)class User(Model):user_id (user_id, int unsigned auto_increment primary key not null)name (name, varchar(20))age (age, int unsigned)# mapping_ {# user_id (user_id, int unsigned auto_increment primary key not null),# name (name, varchar(20))# age (age, int unsigned)# }# user_1 User(user_id0, nameWangMing, age6) # user_1.save() # user_2 User(user_id0, nameLiQiang, age7) # user_2.save() class SuperUser(Model):user_id (user_id, int unsigned auto_increment primary key not null)name (name, varchar(20))age (age, int unsigned)user_2 User(user_id0, nameMengTing, age7) user_2.save()只要定义一个类继承 Model类 就可以在数据库中创建相应的表 但是还有个问题user.save() 明明生成了正确的sql语句 却没有成功插入不知道怎么回事 希望路过的大哥告诉我一下小弟不胜感激
http://www.pierceye.com/news/790486/

相关文章:

  • 做空间的网站吗wordpress 视频管理 主题
  • 做外链选择那些网站建网站怎样往网站传视频
  • 网站主机多大车陂手机网站建设报价
  • 网站策划书内容wordpress 一键恢复
  • wordpress+外观+权限seo排名工具
  • 江苏企业网站制作哪家好潍坊网站开发招生信息
  • 建设一个地方门户网站网站名称搜索不到
  • 南江县住房和城乡建设局网站上海seo关键词优化
  • 门窗厂家东莞网站建设湖南健康码
  • 企业网站建设的背景和目的互联网政务服务平台
  • 化州市住房和城乡建设局网站开发网站心得
  • 网站设计制作公司需要什么资质python h5网站开发
  • 广东深圳广东深圳网站建设惠州网站开发公司电话
  • 建管家企业网站discuz仿wordpress
  • 老网站不要了做新站需要怎么处理平面广告设计赏析
  • 怎么看网站是不是php语言做的网站系统优点
  • 旅游网站建设 策划书销售app哪个好用
  • 建个大型网站要多少钱wordpress页眉设置
  • 浅谈网站建设开发浙江中联建设集团网站
  • 哪有做网站全包圆装修公司
  • 邵阳建设银行网站是多少建设银行 企业
  • 网站开源系统网页制作与网站建设思维导图
  • 专门做前端项目的一些网站wordpress 朋友圈插件
  • 网站建设哪家专业网站开发费用怎么做账
  • 用dw怎么做网站首页wordpress 文章页面失败
  • 郑州网站制作专业乐云seowordpress it博客主题
  • 支付宝手机网站支付二维码怎么做网站 开发
  • 教育网站制作视频代理网址ag80hncom
  • 泰兴公司做网站建设制作外贸网站公司
  • 手机wap网站大全作品提示优化要删吗