Flask-SQLAlchemy连接MySQL,增删改查实例
时间: 2024-10-04 19:01:26 浏览: 30
Flask-SQLAlchemy是一个Python的轻量级ORM(Object-Relational Mapping)库,常用于将Flask应用与SQL数据库如MySQL集成。它简化了在Flask应用中操作数据库的操作。
首先,你需要安装`flask-sqlalchemy`和`mysqlclient`或`pymysql`:
```bash
pip install flask-sqlalchemy mysqlclient
```
然后,配置数据库连接:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
db = SQLAlchemy(app)
```
这里,`database_uri`是你MySQL数据库的连接字符串,包括用户名、密码、主机名(通常是localhost),以及数据库名称。
接下来,你可以定义模型(表结构):
```python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
def __repr__(self):
return f'<User {self.username}>'
```
对于增删改查操作,这里有一些基本示例:
### 插入数据(Create)
```python
new_user = User(username='john_doe', password='secret')
db.session.add(new_user) # 添加到会话
db.session.commit() # 提交事务保存到数据库
```
### 查询数据(Read)
```python
users = User.query.all() # 获取所有用户
specific_user = User.query.filter_by(username='john_doe').first() # 根据条件查询
```
### 更新数据(Update)
```python
specific_user.password = 'new_password'
db.session.commit()
```
### 删除数据(Delete)
```python
User.query.filter_by(username='john_doe').delete()
db.session.commit()
```
记得在每次操作后调用`session.commit()`提交更改,如果遇到异常可以使用`session.rollback()`回滚事务。