Flask-SQLALchemy 连接数据库

Flask-SQLALchemy 连接数据库

在 Flask Web 框架中,Flask-SQLALchemy 扩展对数据库操作进行了封装,使用 Flask-SQLALchemy ,可以通过 Python 对象来操作数据库。

一、Flask-SQLALchemy 简介

Flask-SQLALchemy 是一个给你的应用添加 SQLALchemy 支持的 Flask 扩展。 它需要 SQLAlchemy 0.6 或更高的版本。它致力于简化在 Flask 中 SQLAlchemy 的 使用,提供了有用的默认值和额外的助手来更简单地完成日常任务。

上面这句话引自 Flask-SQLALchemy 的中文文档: http://docs.jinkan.org/docs/flask-sqlalchemy/ 。

SQLALchemy 对数据库进行了抽象,通过 Python 对象来操作数据库,开发者不用直接和 SQL 语句打交道。这会让我们想起 ORM(Object-Relational Mapping,对象关系映射),Flask-SQLALchemy 就是一个满足 ORM 的 Flask 框架。

关于 ORM 可以参考: https://blog.csdn.net/weixin_43790276/article/details/102616993

SQLAlchemy 是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库操作,也就是说,SQLAlchemy 是满足 ORM 的框架。而 Flask-SQLALchemy 是一个简化了 SQLAlchemy 操作的 Flask 扩展。

Flask-SQLALchemy 实现了关系数据库和 Python 对象的映射,舍弃了一些性能开销,换取了较大的开发效率提升和开发人员的便利。

二、Flask-SQLALchemy 安装

使用命令 pip install flask-sqlalchemy 安装 Flask-SQLALchemy,如果用的是 pip3 ,就使用 pip3 install flask-sqlalchemy。

pip install flask-sqlalchemy
pip3 install flask-sqlalchemy

一般来说在 Linux 上安装都会很顺利,在 Windows 上安装可能会有防火墙的原因,下包时会连接超时,可以先将包下载到本地再进行安装。

python setup.py install flask-sqlalchemy

也可以指定国内的镜像源来安装,如清华的源 https://pypi.tuna.tsinghua.edu.cn/simple ,阿里的源http://mirrors.aliyun.com/pypi/simple/ 。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask-sqlalchemy

当提示下图的结果时,安装成功。

如果使用 mysql 数据库,还需要安装 mysqldb 驱动。

pip install flask-mysqldb

在 Linux 中,如果是缺少 gcc 等原因,可以安装对应的工具来解决。如:

yum install -y gcc
yum install -y libffi-devel python-devel openssl-devel

如果已经安装了 python-devel 还找不到 Python.h ,可能是同时安装了不同版本的 Python,可以到 /usr/include/ 中不同 Python 版本的文件夹中看 Python.h 在哪个目录下,如果在 Python2 中,就用 pip2 安装,如果在 Python3 中,就用 pip3 安装,只是 pip2 是安装到 Python2 中,pip3 是安装到 Python3 中。

在 Windows 中通过指定国内镜像源来进行安装。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask-mysqldb

每个人的环境不同,安装过程中的问题也各不相同,需要灵活解决,自己搜索找一些方法。

当提示下图的结果时,安装成功。

三、Flask-SQLALchemy 连接数据库

1. 先创建一个数据库

这里使用我之前创建的 admin 用户连接数据库。

mysql -u admin -p

回车后输入密码连接数据库,创建一个数据来使用,我这里也是使用之前创建过的数据库 MyDB_one ,如果没有就创建。

create database MyDB_one charset utf8;

2. 在 Flask 代码中连接数据库

在 Flask-SQLAlchemy 中,与数据库的连接方式是在 Flask 对象的配置中加入 SQLALCHEMY_DATABASE_URI 配置项,配置项的值是一个 URL 的形式,‘mysql://user:password@ip:port/database’ ,分别是使用的数据库,登录用户,密码,ip地址,端口,数据库名。如:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://admin:Mysql!123@127.0.0.1:3306/MyDB_one'

这样配置之后,Flask 就会连接到对应的数据库。

3. 数据库连接设置

设置 SQLALCHEMY_TRACK_MODIFICATIONS 为 True 动态追踪修改设置,如未设置会提示警告。

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

设置 SQLALCHEMY_ECHO 为 True ,查询时会显示原始SQL语句。

app.config['SQLALCHEMY_ECHO'] = True

除了这两个常用的配置,还可以根据需要设置其他的数据库连接设置,可以自己查询一下,这里就不扩展了。

4. 创建 SQLAlchemy 对象 

将 Flask app 对象传递给 Flask-SQLAlchemy 中导入的 SQLAlchemy 类,创建一个 SQLAlchemy 对象 db ,这个对象名是自定义的,叫 db 是为了方便理解。

在后面的代码中,使用 db 来创建数据表和创建表的字段。

5. 定义数据模型类

自定义一个数据对象的类,这个类的名字一般和数据库中的表名同名。

这个数据库必须继承 db 对象的 Model 类。

在类中通过 __tablename__ 来指定表名,通过 db 对象的 Column 方法来定义数据库的字段,通过 db 对象中的字段类型来定义数据库的字段类型。

6. 执行数据表创建

定义完成数据模型类后,执行 db 对象的 create_all() 方法,运行 Flask 后端程序后,就会在连接的数据库中创建一张表。

四、Flask-SQLALchemy 使用

在项目目录下创建一个 flask_alchemy.py 文件,注意,文件名不能叫  flask_sqlalchemy.py ,那样会与 Flask-SQLAlchemy 库中的文件名相同,会造成导包错误。

创建完成后,在 flask_alchemy.py 中编写代码。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy


app = Flask(__name__)


app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://admin:Mysql!123@127.0.0.1:3306/MyDB_one'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)


class Computer(db.Model):
    __tablename__ = 'Computer_table'
    cid = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(64), unique=True)
    price = db.Column(db.Integer)


db.create_all()


if __name__ == '__main__':
    app.run(debug=True)

运行代码后,会在数据库 MyDB_one 中创建一张叫 Computer_table 的数据表,表中有三个字段 cid , name , price 。

这说明我们成功通过 Flask-SQLAlchemy 实现了在 Flask 项目中操作数据库,实现了 ORM 操作。后面要对数据表进行增删改查,都可以通过定义的模型类 Computer 的对象来进行。

 

 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要连接MySQL数据库使用Flask-SQLAlchemy,首先需要安装pymysql和flask-sqlalchemy库。可以使用以下命令安装flask-sqlalchemy: ``` pip install flask-sqlalchemy ``` 在安装成功后,可以按照以下步骤进行flask-sqlalchemy连接MySQL数据库的配置: 1. 在Flask应用程序中导入必要的库和模块: ```python from flask import Flask from flask_sqlalchemy import SQLAlchemy ``` 2. 创建Flask应用程序对象: ```python app = Flask(__name__) ``` 3. 配置MySQL数据库连接参数: ```python app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost:port/database_name' ``` 其中,username是你的MySQL用户名,password是你的MySQL密码,localhost是MySQL服务器地址,port是MySQL服务器端口,database_name是要连接的数据库名。 4. 创建SQLAlchemy对象并将应用程序对象与数据库对象关联: ```python db = SQLAlchemy(app) ``` 5. 创建模型类来映射数据库表: ```python class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) content = db.Column(db.Text, nullable=False) ``` 在这个例子中,创建了一个名为Article的模型类,它有id、title和content三个字段,分别映射数据库表的id、title和content列。 6. 在应用程序中使用数据库: ```python @app.route('/') def index(): articles = Article.query.all() return render_template('index.html', articles=articles) ``` 在这个例子中,使用Article.query.all()查询了所有的文章,并将它们传递给模板渲染。 7. 最后,运行应用程序: ```python if __name__ == '__main__': app.run() ``` 这样就完成了Flask-SQLAlchemy连接MySQL数据库的配置和使用。通过以上步骤,你可以在Flask应用程序中使用SQLAlchemy来进行数据库的增删改查操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小斌哥ge

非常感谢,祝你一切顺利。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值