SQLAlchemy-ORM
Posted 狼来的日子里!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLAlchemy-ORM相关的知识,希望对你有一定的参考价值。
ORM是建立在SQL语言构造器之上的工具集,用于将Python对象映射到数据库的行,提供了一系列接口用于从数据库中存取对象(行)。在ORM 工作时,在底层调用SQL语言构造器的API,这些通用的操作有些许的不同。不同的是,你不再使用行,而是使用自定义类的对象来操作。另外,数据库的查询 方式也不同,ORM的可以生成大多数的SQL查询,除此之外还可以在类中定义更多操作
1)检查sqlalchemy版本
>>> import sqlalchemy >>> sqlalchemy.__version__ ‘1.2.0b2‘
2) 建立连接connecting
>>> from sqlalchemy import create_engine >>> engine=create_engine("mysql+pymysql://admin:[email protected]/coursesys?charset=utf8",encoding="utf-8",echo=True) 1)通过create_engine()建立连接,create_engine是 Engine实例,create_engine第一次调用的时候会调用Engine.execute()或者 Engine.connect()方法, 通过dialect在数据库和DBAPI之间建立连接关系。 注意:返回create_engine对象并没有连接到数据库。只有在执行第一次要求对数据库时才连接 2)echo是SQLAlchemy logging 是个标准logging模型。当echo 为True看到所有生成的SQL;希望少输出,设置它 False 3)mysql+pymysql://admin:[email protected]/coursesys?charset=utf8 是个dialect连接 4)engine=create_engine(‘sqlite:///:memory:‘,echo=True)将使用一个只在内存中SQLite数据库
3)声明映射
我们使用ORM:映射类与数据库表。SQLAlchemy在中首先通过declarative_base申明一个基类。这个基类维持着类与数据库表的关系
>>> from sqlalchemy.ext.declarative import declarative_base >>> Base=declarative_base()
创建表第一种方式:在定义类继承declarative_base这个基类来映射数据表
>>> class User(Base): __tablename__="users" id=Column(Integer,primary_key=True) name=Column(String) fullname=Column(String) password=Column(String) def __repr__(self): return "User(name=%s,fullname=%s,password=%s" %(self.name,self.fullname,self.password)
__tablename__指定表名
Column 指定字段
primary_key 设置主键
__repr__ 当打印User对象时显示的数据。
创建表第二种方式:通过模式创建,通过__table__可以查看定义表元数据。
以上是关于SQLAlchemy-ORM的主要内容,如果未能解决你的问题,请参考以下文章