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

童装东莞网站建设电子商务的特点

童装东莞网站建设,电子商务的特点,做网站多少前,凡科网站制作教程本文将以Mysql举例#xff0c;介绍sqlalchemy的基本用法。其中#xff0c;Python版本为2.7#xff0c;sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名的ORM工具。 关于ORM#xff1a; 全称Object Relational Mapping#xff08;对象关系映射#xff0…本文将以Mysql举例介绍sqlalchemy的基本用法。其中Python版本为2.7sqlalchemy版本为1.1.6。 一. 介绍 SQLAlchemy是Python中最有名的ORM工具。 关于ORM 全称Object Relational Mapping对象关系映射。 特点是操纵Python对象而不是SQL查询也就是在代码层面考虑的是对象而不是SQL体现的是一种程序化思维这样使得Python程序更加简洁易读。 具体的实现方式是将数据库表转换为Python类其中数据列作为属性数据库操作作为方法。 **优点 ** 简洁易读将数据表抽象为对象数据模型更直观易读可移植封装了多种数据库引擎面对多个数据库操作基本一致代码易维护更安全有效避免SQL注入 为什么要用sqlalchemy? 虽然性能稍稍不及原生SQL但是操作数据库真的很方便 二. 使用 概念和数据类型 概念 概念对应数据库说明Engine连接驱动引擎Session连接池事务由此开始查询Model表类定义Column列Query若干行可以链式添加多个条件 常见数据类型 数据类型数据库数据类型python数据类型说明Integerintint整形32位Stringvarcharstring字符串Texttextstring长字符串Floatfloatfloat浮点型BooleantinyintboolTrue / FalseDatedatedatetime.date存储时间年月日DateTimedatetimedatetime.datetime存储年月日时分秒毫秒等Timetimedatetime.datetime存储时分秒 使用步骤 创建数据库表 **1.安装 ** pip install SQLalchemy 2. 创建连接 from sqlalchemy import create_engineengine create_engine(mysql://user:passwordhostname/dbname?charsetutf8)这行代码初始化创建了EngineEngine内部维护了一个Pool连接池和Dialect方言方言来识别具体连接数据库种类。 创建好了Engine的同时Pool和Dialect也已经创建好了但是此时并没有真正与数据库连接等到执行具体的语句.connect()等时才会连接到数据库。 create_engine还有其它可选的参数比如 engine create_engine(mysql://user:passwordhostname/dbname?charsetutf8,echoTrue,pool_size8,pool_recycle60*30)echo: 当设置为True时会将orm语句转化为sql语句打印一般debug的时候可用pool_size: 连接池的大小默认为5个设置为0时表示连接无限制pool_recycle: 设置时间以限制数据库多久没连接自动断开 3. 创建数据库表类模型 前面有提到ORM的重要特点那么我们操作表的时候就需要通过操作对象来实现现在我们来创建一个类以常见的用户表举例 from sqlalchemy.ext.declarative import declarative_baseBase declarative_base()class Users(Base):__tablename__ usersid Column(Integer, primary_keyTrue)name Column(String(64), uniqueTrue)email Column(String(64))def __init__(self, name, email):self.name nameself.email email declarative_base()是sqlalchemy内部封装的一个方法通过其构造一个基类这个基类和它的子类可以将Python类和数据库表关联映射起来。 数据库表模型类通过__tablename__和表关联起来Column表示数据表的列。 4. 生成数据库表 Base.metadata.create_all(engine) 创建表如果存在则忽略执行以上代码就会发现在db中创建了users表。 操作数据 表创建好了就是操作数据了常见的操作增删改查我们一一介绍。 session sqlalchemy中使用session用于创建程序和数据库之间的会话所有对象的载入和保存都需要通过session对象 。 通过sessionmaker调用创建一个工厂并关联Engine以确保每个session都可以使用该Engine连接资源 from sqlalchemy.orm import sessionmaker# 创建session DbSession sessionmaker(bindengine) session DbSession()session的常见操作方法包括 flush预提交提交到数据库文件还未写入数据库文件中commit提交了一个事务rollback回滚close关闭 增 举个最简单的例子 add_user Users(test, test123qq.com) session.add(add_user) session.commit()session.add()将会把Model加入当前session维护的持久空间(可以从session.dirty看到)中直到commit时提交到数据库。 Q1add之后如何直接返回对象的属性 可以在add之后执行db.session.flush()这样便可在session中get到对象的属性。 Q2如何进行批量插入性能比较 批量插入共有以下几种方法对它们的批量做了比较分别是 session.add_all() bulk_save_object() bulk_insert_mappings() SQLAlchemy_core() 查 查询是最常用的一个操作了举个最简单的查询例子 users session.query(Users).filter_by(id1).all() for item in users:print(item.name)通常我们通过以上查询模式获取数据需要注意的是通过session.query()我们查询返回了一个Query对象此时还没有去具体的数据库中查询只有当执行具体的.all().first()等函数时才会真的去操作数据库。 其中query有filter和filter_by两个过滤方法上述例子也可写为 users session.query(Users).filter_by(Users.id 1).all()通常这两个方法都会用到的所以一定要掌握它们的区别 filterfilter_by支持所有比较运算符相等比较用比较用只能使用!和过滤用类名.属性名过滤用属性名不支持组合查询只能连续调用filter变相实现参数是**kwargs支持组合查询支持andor和in等 改 更新数据有两种方法一种是使用query中的update方法 session.query(Users).filter_by(id1).update({name: Jack})另一种是操作对应的表模型 users session.query(Users).filter_by(nameJack).first() users.name test session.add(users)这两种方式呢一般批量更新的话我会选前者而要对查询获取对象属性之后再更新的场景就需要使用后者。 删 和更新数据类似删除数据也有两种方法第一种 delete_users session.query(Users).filter(Users.name test).first() if delete_users:session.delete(delete_users)session.commit()第二种 session.query(Users).filter(Users.name test).delete() session.commit()批量删除时推荐使用第二种。 以上就是Python sqlalchemy的基本用法。
http://www.w-s-a.com/news/637093/

相关文章:

  • 网站建设费 大创wordpress中函数get
  • 怎样建设个自己的网站首页有没有专门教做扯面的网站
  • 网站后台怎么添加模板教育类网站开发公司
  • 网站的外链是什么php创建一个网站
  • 语文建设 官方网站网络工程可以从事什么工作
  • 无锡便宜做网站如何下载网站模板
  • 南宁高端网站网络小说网站推广策划方案
  • 苏州网站制作方法建设银行 网站
  • 技术网站推广范例素材网站哪个好
  • 网站找人做的他能登管理员吗网站建设一般多少钱
  • 衡水哪有做网站的wordpress主题站主题
  • 网络建设的流程网站公司注册资本
  • 杭州旅游团购网站建设建立一个网站需要哪些步骤
  • 实木餐桌椅网站建设浦东网站建设哪家好
  • 高端手机网站定制网站网络推广推广
  • 做网站的颜色大学网站群建设方案
  • 淄博学校网站建设哪家好网站集约化建设规范
  • 专业论坛网站有哪些如何制作h5页面视频
  • 南京整站优化网站备案负责人一定要法人
  • 北京正规网站建设公司php网站开发实训感想
  • 织梦网站地图怎么做腾讯网站开发语言
  • 站长之家alexa排名wordpress html 标签
  • WordPress建站主机推荐工程公司的经营范围
  • 做网站要注意哪一点网站需求分析的重要
  • 设计作品网站怎么开网站
  • 上海网站开发制作建设网站的建设费用包括
  • 上海网站建设网站开发亚洲杯篮球直播在什么网站
  • 网站做seo第一步h5制作公司
  • 软件外包产业网络优化工程师是干嘛的
  • 怎么用服务器做局域网网站河西网站建设