Python学习之旅

Tornado SQLAlchemy 操作

2017-12-28  本文已影响35人  依旧丶森

Tornado 曾经支持简单的 ORM 操作!就是可以通过自定义 sql 语句的方式,来完成数据对象的的增删改查操作[并不是面向对象的],后来把 ORM 操作作为了一个独立的模块进行处理,不再有内置的ORM支持!
Tornado 在实际使用时需要和第三方模块结合起来完成数据模型对象的ORM操作。
比较常用的操作手段:使用 pymysql / torndb / sqlalchemy ,这里主要用sqlalchemy。

参考官方文档(http://docs.sqlalchemy.org/en/latest/orm/tutorial.html)

1. 安装模块

   pip install sqlalchemy
   #安装完成即可通过导入模块,查看版本号看是否安装成功
   >>> import sqlalchemy
   >>> print(sqlalchemy.__version__)
   1.2.0b3

2. 建立连接

ORM操作的核心,就是将程序中的对象要在数据库中进行增删改查操作

    from sqlalchemy import create_engine # 创建引擎对象的模块
    from sqlalchemy.orm import sessionmaker # 创建和数据库连接会话
    from sqlalchemy import Column,String,Integer #内置的创建类的方法属性
    from sqlalchemy.ext.declarative import declarative_base #基础类模块
  
    # sqlalchemy默认底层使用 mysqldb 完成和数据库的连接
    #但是 mysqldb 不支持最新版本的 python 和 mysql 数据库的连接,一般用Pymysql进行替代。
    import pymysql
    pymysql.install_as_MySQLdb()

    #创建数据库引擎,数据库的类名、账号、密码、登录方式、连接的数据库、数据库编码、是否显示回写
    engine =create_engine('mysql://root:root@localhost/torando_db1',
                      encoding='utf-8',echo=True)

    #创建会话对象
    Session=sessionmaker(bind=engine)
    sess=Session()
    # 2.如果创建会话的时候还没有创建引擎对象
    #Session = sessionmaker()# 创建一个会话类型
    #Session.configur(bind=engine)# 将一个连接引擎注册给这个会话
    #session = Session() # 得到具体的包含连接引擎的会话

    #创建基础类
    Base=declarative_base(bind=engine)
    
  #自定义类型
  class Person(Base):
        #指定关联数据表
        __tablename__ ='person'
        #定义属性
       id=Column(Integer,primary_key=True)
       name=Column(String(30))
       age=Column(Integer)
       #注意:自定义的类型必须制定关联的数据库表和表中的主键,否则报错。

3.表的创建及数据状态分析(增删改)

4. 查询操作

上一篇下一篇

猜你喜欢

热点阅读