使用flask-sqlalchemy操作MySQL数据库教程

6 下载量 169 浏览量 更新于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开发中常用的数据库扩展工具。