flask加vue前后端分离的项目,flask应该怎么连接数据库
时间: 2023-09-11 19:04:43 浏览: 53
在 Flask 中连接数据库的方式有很多种,可以使用 SQLALchemy、Peewee、MongoEngine、PyMySQL 等第三方库。以下是使用 SQLAlchemy 连接 MySQL 数据库的示例代码:
首先需要安装 SQLAlchemy 和 PyMySQL:
```python
pip install sqlalchemy
pip install pymysql
```
然后在 Flask 中创建一个数据库连接对象:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 配置数据库连接地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@host:port/database_name'
# 配置数据库连接池大小
app.config['SQLALCHEMY_POOL_SIZE'] = 10
# 关闭数据库对象修改跟踪
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
```
其中,`SQLALCHEMY_DATABASE_URI` 是数据库连接地址,格式为:`mysql+pymysql://username:password@host:port/database_name`,具体含义如下:
- `mysql+pymysql`:表示使用 PyMySQL 库连接 MySQL 数据库。
- `username`:数据库用户名。
- `password`:数据库密码。
- `host`:数据库主机地址。
- `port`:数据库连接端口,默认为 3306。
- `database_name`:数据库名称。
`SQLALCHEMY_POOL_SIZE` 是数据库连接池大小,可以根据需要进行调整。
`SQLALCHEMY_TRACK_MODIFICATIONS` 表示是否开启对象修改跟踪,建议关闭,避免出现性能问题。
接下来就可以使用 `db` 对象进行数据库操作了。例如,定义一个 User 模型类:
```python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True)
password = db.Column(db.String(50))
```
其中,`User` 继承自 `db.Model`,表示这是一个数据库模型类。`id`、`username`、`password` 分别是表中的字段名,`db.Column` 表示这是一个数据库字段。
如果需要创建表和字段,可以使用以下命令:
```python
db.create_all()
```
这样就可以在 Flask 中连接 MySQL 数据库了。当然,使用其他库连接其他类型的数据库也是类似的。