使用flask-sqlalchemy操作MySQL数据库教程
176 浏览量
更新于2024-08-29
收藏 145KB PDF 举报
本文主要介绍了如何在Python的Flask框架中配置并操作MySQL数据库,特别提到了使用Flask-SQLAlchemy扩展进行数据库交互的方法。在Python 3环境下,由于不支持MySQLdb模块,推荐使用pymysql作为MySQL的Python接口。在开始之前,需要先通过`pip install pymysql`安装pymysql。
在配置Flask应用与MySQL数据库的连接时,首先要在`config.py`文件中设置`SQLALCHEMY_DATABASE_URI`变量,该变量包含了数据库的URL,包括用户名、密码、主机地址、端口和数据库名称,例如:`SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:xxxxx@localhost:3306/test?charset=utf8'`,其中`xxxxx`替换为实际的MySQL密码。另外,设置`SQLALCHEMY_TRACK_MODIFICATIONS=True`来追踪数据库的修改。
接着,在`app/__init__.py`文件中,通过`app.config.from_object('config')`导入配置,然后创建一个SQLAlchemy实例`db = SQLAlchemy(app)`,这样就完成了Flask应用与数据库的连接。
为了便于数据库操作,通常会创建一个`models.py`文件,用于定义数据库模型。Flask-SQLAlchemy提供了一个声明式API,可以更简洁地定义表结构。例如,定义一个User模型:
```python
from flask_sqlalchemy import SQLAlchemy
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
```
在定义了模型之后,可以使用Flask-SQLAlchemy提供的方法进行数据库的增删改查操作。例如,插入一个新的用户:
```python
new_user = User(username='John', email='john@example.com')
db.session.add(new_user)
db.session.commit()
```
查询用户:
```python
users = User.query.all()
for user in users:
print(user.username)
```
更新用户信息:
```python
user = User.query.filter_by(username='John').first()
user.email = 'new_email@example.com'
db.session.commit()
```
删除用户:
```python
user_to_delete = User.query.get(1)
db.session.delete(user_to_delete)
db.session.commit()
```
Flask-SQLAlchemy简化了原本需要通过SQLAlchemy进行的数据库操作,使得在Flask应用中管理数据库变得更加方便。同时,它还提供了模型间的关系定义、事务处理等功能,是Flask开发中常用的数据库扩展工具。
1771 浏览量
2024-06-06 上传
1749 浏览量
313 浏览量
点击了解资源详情
101 浏览量
点击了解资源详情
561 浏览量
2024-10-31 上传
weixin_38733525
- 粉丝: 2
- 资源: 920