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秒,超过时间的连接都会连接失败。

 

posted @ 2024-06-26 14:57  yongheng999  阅读(394)  评论(0)    收藏  举报