简介
Engine
包含了Pool
和dialect
Pool
是数据库连接池
Dialect
是将orm语言转换为SQL语言,这样我们只用写orm,并不用关心不同数据库的语言。及SQLAlchemy会将orm语言翻译成我们engine绑定的数据库的语言。好处是,写一个orm可以适应不同的数据库。
DBAPI
既数据库引擎
应用
引擎创建的一般形式:
dialect+driver://username:password@host:port/database
PostgreSQL
# default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')
# psycopg2
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
# pg8000
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
MySQL
# default
engine = create_engine('mysql://scott:tiger@localhost/foo')
# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')
# OurSQL
engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')
Oracle
engine = create_engine('oracle://scott:tiger@127.0.0.1:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')
Microsoft SQL Server
# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')
# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
SQLite
# sqlite://<nohostname>/<path>
# where <path> is relative: 相对位置
engine = create_engine('sqlite:///foo.db')
#Unix/Mac - 4 initial slashes in total 绝对位置
engine = create_engine('sqlite:absolute/path/to/foo.db')
#Windows
engine = create_engine('sqlite:///C:\\path\\to\\foo.db')
#Windows alternative using raw string
engine = create_engine(r'sqlite:///C:\path\to\foo.db')
# 内存模式
engine = create_engine('sqlite://')
参考文献:
http://docs.sqlalchemy.org/en/latest/core/engines.html#supported-databases