SQLAlchemy的数据库引擎
任何SQLAlchemy应用程序的开始都是一个名为 Engine . 此对象充当连接到特定数据库的中心源,
提供工厂和称为 connection pool 对于这些数据库连接。引擎通常是一个只为特定数据库服务器创建
一次的全局对象,并使用一个URL字符串进行配置,该字符串将描述如何连接到数据库主机或后端。
总体结构如下:

sqlalchemy使用 create_engine() 函数从URL生成一个数据库引擎对象。比如:
engine = create_engine(r'sqlite:///1 C:\path\to\foo.db')
1、支持的数据库
URL通常可以包括用户名、密码、主机名、数据库名以及用于其他配置的可选关键字参数。主题格式
为:dialect+driver://username:password@host:port/database
注意:你必须安装,你想要的数据库驱动库
1) SQLite数据库
sqlite使用python内置模块连接到基于文件的数据库 sqlite3 默认情况下。
# 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') # 当前目录下的test.db engine = create_engin# 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')
2) MySQL数据库
mysql方言使用mysql python作为默认dbapi。mysql dbapis有很多,包括pymysql 和
mysqlclient:
# default engine = create_engine('mysql://scott:tiger@localhost/foo?charset=utf8') # mysqlclient (a maintained fork of MySQL-Python) engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo?charset=utf8') # PyMySQL engine = create_engine('mysql+pymysql://scott:tiger@localhost/foo?charset=utf8')
3) Microsoft SQL数据库
SQL Server方言使用pyodbc作为默认dbapi。PYMSSQL也可用:
# pyodbc engine = create_engine('mssql+pyodbc://scott:tiger@mydsn') # pymssql engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
2、数据库引擎的参数

1. echo=False -- 如果为真,引擎将记录所有语句以及 repr() 其参数列表的默认日志处理程序
2. future -- 使用2.0样式 Engine 和 Connection API。
3. logging_name -- 将在“sqlalChemy.engine”记录器中生成的日志记录的“name”字段中使用的
字符串标识符。
4. pool_size=5 # 连接池的大小默认为 5 个,设置为 0 时表示连接无限制
5. pool_recycle=3600, # 设置时间以限制数据库自动断开
6. pool_timeout:连接超时时间,默认为30秒,超过时间的连接都会连接失败。

浙公网安备 33010602011771号