简介
tornado没有像Django那样提供了内建的ORM,需要使用第三方的SQLAlchemy来实现。
ORM全称:Object Relational Mapping 对象关系映射
好处:通过ORM可以不用关心后台是使用的哪种数据库,只需要按照ORM所提供的语法规则去书写相应的代码,ORM就会自动转换成对应的数据库SQL语句。
SQLAlchemy不仅仅只是用于tornado开发,它可以用于任何ORM场合。
补充:
ORM叫对象关系映射,mysql是关系型数据库。而redis、mongodb它们是非关系数据库,以键值对形式表示数据,根本没有关系可言,所以没有ORM这一说法。
一、准备工作
1.安装好mysql
2.安装好所需的依赖:pymysql、sqlalchemy
二、SQLAlchemy连接数据库
(一).导包
from sqlalchemy import create_engine
(二).设置连接的参数
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'mydb'
USERNAME = 'admin'
PASSWORD = 'Root110qwe'
(三).定义连接数据库的URL
db_url = 'mysql+pymysql://{}:{}@{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,DATABASE)
注意:顺序绝对不要弄错了,也不要有任何空格!解析是通过字符串分割的,有一个不对就报错。
(四).连接数据库
engine = create_engine(db_url)
(五).测试连接
connection = engine.connect()
result = connection.execute('select 1')
print(result.fetchone())
如有打印出了结果:"(1,)",那么就可以了。
(六).完整代码
# connect.py from sqlalchemy import create_engine HOSTNAME = '127.0.0.1' PORT = '3306' DATABASE = 'mydb' USERNAME = 'admin' PASSWORD = 'Root110qwe' db_url = 'mysql+pymysql://{}:{}@{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,DATABASE) engine = create_engine(db_url) connection = engine.connect() result = connection.execute('select 1') print(result.fetchone())