Flask 如何与数据库交互实现数据的增删改查?
时间: 2024-09-13 22:16:13 浏览: 41
Flask 是一个轻量级的 Web 应用框架,它本身不直接提供数据库操作的功能,但可以通过扩展库如 Flask-SQLAlchemy 来实现与数据库的交互。以下是一个基本的 Flask 与数据库交互实现数据增删改查的示例:
1. 安装 Flask-SQLAlchemy 扩展库:
```bash
pip install Flask-SQLAlchemy
```
2. 在 Flask 应用中配置数据库:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库类型://用户名:密码@主机地址:端口号/数据库名'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 可选配置,防止额外的信号跟踪
db = SQLAlchemy(app)
```
3. 定义模型(即数据库表结构):
```python
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
```
4. 实现数据的增删改查操作:
- 增加数据:
```python
user = User(username='new_user', email='new_user@example.com')
db.session.add(user)
db.session.commit()
```
- 查询数据:
```python
# 查询所有用户
users = User.query.all()
for user in users:
print(user.username)
# 查询特定用户
user = User.query.filter_by(username='some_user').first()
print(user.email)
```
- 更新数据:
```python
user = User.query.filter_by(username='some_user').first()
user.email = 'new_email@example.com'
db.session.commit()
```
- 删除数据:
```python
user_to_delete = User.query.filter_by(username='some_user').first()
db.session.delete(user_to_delete)
db.session.commit()
```
请注意,上述代码仅为示例,实际使用时需要根据具体的数据库类型、数据库配置、模型设计以及业务逻辑进行相应的调整。
阅读全文