码迷,mamicode.com
首页 > 数据库 > 详细

SQLAlchemy-ORM

时间:2017-08-17 16:25:37      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:utf8   基类   log   查看   connect   base   har   自定义   users   

  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:admin@192.168.6.22/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:admin@192.168.6.22/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

标签:utf8   基类   log   查看   connect   base   har   自定义   users   

原文地址:http://www.cnblogs.com/lixiang1013/p/7382215.html

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