RuntimeError: Either 'SQLALCHEMY_DATABASE_URI' or 'SQLALCHEMY_BINDS' must be set. 配置mysql
时间: 2024-12-19 15:21:08 浏览: 13
Python RuntimeError: thread.__init__() not called解决方法
这个RuntimeError是在使用Python的SQLAlchemy库连接MySQL数据库时遇到的问题。它提示你需要设置两个配置之一:`SQLALCHEMY_DATABASE_URI` 或者 `SQLALCHEMY_BINDS`。这两个配置项用于告诉SQLAlchemy如何连接到数据库。
1. `SQLALCHEMY_DATABASE_URI`: 这是一个字符串,通常以特定格式如`mysql+pymysql://username:password@host:port/database_name`指定单一数据库的连接信息。例如:
```python
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:password@localhost/mydatabase"
```
2. `SQLALCHEMY_BINDS`: 如果你的应用程序需要连接多个数据库实例(比如有读写分离的情况),你可以设置一个键值对映射,其中键是别名,值是具体的数据库URI。例如:
```python
SQLALCHEMY_BINDS = {
'read': 'mysql+pymysql://read_user:password@read_host:port/read_database',
'write': 'mysql+pymysql://write_user:password@write_host:port/write_database'
}
```
如果你的代码里既没有设置`SQLALCHEMY_DATABASE_URI`也没有设置`SQLALCHEMY_BINDS`,SQLAlchemy就会抛出这个错误,表示缺少必要的数据库连接配置。
阅读全文