flask-SQLAlchemy 怎么连接已有的数据库
时间: 2024-05-08 16:15:17 浏览: 89
在 Flask 中使用 SQLAlchemy 连接已有的数据库,需要在 Flask 项目中进行如下配置:
1. 安装 SQLAlchemy:
```
pip install SQLAlchemy
```
2. 在 Flask 项目中创建一个 config.py 文件,添加数据库连接信息:
```python
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@hostname/database'
SQLALCHEMY_TRACK_MODIFICATIONS = False
```
其中,`SQLALCHEMY_DATABASE_URI` 表示数据库连接信息,`SQLALCHEMY_TRACK_MODIFICATIONS` 表示是否追踪数据库修改,默认为 True,我们可以手动设置为 False。
3. 在 Flask 项目中创建一个 models.py 文件,定义数据模型:
```python
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
age = db.Column(db.Integer)
```
4. 在 Flask 项目的 __init__.py 文件中初始化 db:
```python
from flask import Flask
from config import SQLALCHEMY_DATABASE_URI
from models import db
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = SQLALCHEMY_DATABASE_URI
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
```
5. 在 Flask 项目中创建一个 manage.py 文件,定义命令行操作:
```python
from flask_script import Manager
from models import db, User
from app import app
manager = Manager(app)
@manager.command
def create_all():
db.create_all()
if __name__ == '__main__':
manager.run()
```
6. 在命令行中执行 `python manage.py create_all` 命令,创建数据库表。
以上就是在 Flask 中连接已有的数据库的步骤。需要注意的是,连接数据库的 URI 需要根据实际情况进行调整,例如,如果使用的是 MySQL 数据库,则需要将 URI 中的 `mysql` 替换为 `mysql+pymysql`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)