使用flask-SQLAlchemy连接MySQL数据库实战教程
160 浏览量
更新于2024-08-31
收藏 389KB PDF 举报
"这篇文章是关于如何在基于Flask的Web应用程序中集成MySQL数据库的教程,主要涉及使用SQLAlchemy作为数据库操作框架。"
在构建Web应用时,数据存储和管理是核心部分,特别是在用户需要注册、登录和进行其他交互时。在本教程中,我们将深入探讨如何将流行的Python Web框架Flask与MySQL数据库连接起来,以便实现这些功能。Flask是一个轻量级且灵活的框架,而MySQL则是一个广泛使用的开源关系型数据库管理系统。
首先,为了将Flask与MySQL结合,我们需要引入SQLAlchemy,它是Python的一个强大的ORM(对象关系映射)库,它允许我们用Python代码来操作数据库,而不是直接编写SQL语句。为了在Flask中使用SQLAlchemy,我们需要安装`flask-sqlalchemy`扩展,通过Python的包管理器pip执行以下命令:
```
pip3.6 install flask-sqlalchemy
```
安装完成后,我们需要配置Flask应用以连接到MySQL数据库。在应用的配置部分,导入`SQLAlchemy`类:
```python
from flask.ext.sqlalchemy import SQLAlchemy
```
然后,设置数据库连接的URI,其中包含数据库的用户名、密码、主机名和数据库名称:
```python
app.config["SQLALCHEMY_DATABASE_URI"] = 'mysql://root:1234@localhost/cblog'
```
这里,'root'是用户名,'1234'是密码,'localhost'是数据库服务器地址,'cblog'是数据库名称。接着,开启自动提交设置,确保每次请求结束时,数据库操作会被提交:
```python
app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = True
```
最后,通过传递Flask应用实例来初始化`SQLAlchemy`:
```python
db = SQLAlchemy(app)
```
模型是ORM中的关键概念,它们代表数据库中的表。在本教程中,作者创建了两个模型:`User`和`Role`。`Role`模型定义了一个角色,具有`id`(主键)和`name`(唯一的角色名称)。同时,`Role`模型通过`db.relationship`定义了一个到`User`模型的多对多关系,这意味着每个角色可以有多个用户,反之亦然:
```python
class Role(db.Model):
__tablename__ = "roles" # 数据库中的表名为"roles"
id = db.Column(db.Integer, primary_key=True) # 主键
name = db.Column(db.String(50), unique=True) # 唯一的字符串
users = db.relationship("User", backref="role") # 关联到User模型
```
`User`模型通常包含用户的属性,如用户名、密码等。在这个例子中,`User`模型可能会包括`id`(主键)、`username`、`password`以及指向`Role`的外键。不过,这部分代码没有在提供的内容中给出,需要读者根据实际需求自行添加。
通过以上步骤,我们就完成了Flask应用与MySQL数据库的集成,并定义了数据模型。接下来,我们可以创建表、填充数据并实现注册、登录等用户管理功能。这通常涉及到处理HTTP请求、验证用户输入、保存用户数据到数据库以及从数据库检索数据来验证登录等操作。
总结来说,这个教程展示了如何使用Flask-SQLAlchemy将Flask应用与MySQL数据库连接,以及如何使用ORM创建数据模型。通过这个过程,开发者可以轻松地构建一个支持用户注册、登录的Web应用。
2020-12-24 上传
2020-09-08 上传
2021-01-20 上传
2020-09-21 上传
2020-12-24 上传
2020-12-24 上传
2021-02-12 上传
2021-04-30 上传
weixin_38655767
- 粉丝: 3
- 资源: 923