安装
pip3 install sqlalchemy
数据库连接
sqlalchemy可以支持多种数据库的连接使用:下面是常用的几种
MySQL-Python(2.x)
mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
pymysql (python 3.x)
mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
MySQL-Connector
mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
cx_Oracle
oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value…]
更多详见: http://docs.sqlalchemy.org/en/latest/dialects/index.html
执行原生SQL
#! -*- coding:utf8 -*-
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
'''第一步:连接数据库'''
engine = create_engine("mysql+pymysql://root:1@127.0.0.1/bsp?charset=utf8")
# engine = create_engine("mysql+pymysql://root:1@127.0.0.1/tomdb",encoding='utf-8', echo=True)
'''附加: 无论是增删改查都要先创建与数据库的会话session class'''
#创建与数据库的会话session class ,注意,这里返回给session的是个class类,不是实例
Session_class = sessionmaker(bind=engine) #创建用于数据库session的类
session = Session_class() #这里才是生成session实例可以理解为cursor
'''第二步:操作数据库'''
#1、查看mysql中有哪些数据库
dbs=session.execute('show databases;').fetchall()
#2、切换当前数据库
session.execute('use bsp;')
#3、查询时过滤出第一条
row1=session.execute('select * from relations_department where Id>1;').first()
fid_id = row1.fid_id
#4、一对多关联查询: 根据上面查询的父部门id 可以找到父部门信息
row2=session.execute('select * from relations_department where Id=%s;'%fid_id).first()
print row2.name # 政府事业部
python执行原生SQL
转载请注明:www.ainoob.cn » SQLAlchemy执行原生SQL