新闻详情

新闻详情

首页 / 资讯中心 / 详情

Flask-SQLAlchemy 文档 (3.1.x)

发布时间:2026/9/27 22:54:16来源:尧图网络
Flask-SQLAlchemy 文档 (3.1.x)
快速入门Flask——这个工具通过自动地帮你搞定了创建、使用, 以及最后清理那些大家平时特别爱用的一类对象, 以此来让另一类东西的使用变得更加轻松简单。它不仅顺手添加了一些挺管用的额外功能, 不过说来说去, 它干活的方式跟原来那个没加功能的版本其实还是一样的, 依旧保持着一摸一样的运行逻辑。这个页面会让你一步一步地了解Flask的基本使用方法, 如果你想看到所有详细的功能并且进行自定义操作的话, 请继续查阅这份文档剩下的内容, 这里面还包含了有关对象的API说明文档。查看 文档Flask- 是对某物的一个包装器。您应该参考那个教程以便弄明白该怎么去使用它, 并且要去翻阅它的文档, 以此来获取关于它有啥功能的详细信息。请注意这些文档里面展示的只是怎么把 Flask- 这个本身给设置好, 并没有讲怎么去用别的什么东西。因为 Flask- 会自行搞定引擎还有作用域会话的事情, 所以在那些内容上面您是完全可以跳过教程里面对应的环节而不需要处理的。本指南是基于您使用的是2.x这个前提来进行编写的。因为它提供了全新的应用程序设计接口用于对模型的定义。并且它能够更好地支持类型提示和把数据变成类这种做法。如果您现在用的是1.x。那么就请您去阅读那篇叫做传统快速入门的文章。安装Flask这个软件可以在PyPI这个网站上找到, 用户可以使用各式各样的工具来把它装上。拿pip这款软件来举例, 如果要用它来给Flask做安装操作或者更新操作的的话, 需要用到最新版本的那些内容。$ pip install -U Flask-SQLAlchemy把扩展给初始化完成。第一步, 我们要使用那个构造函数去创建一个叫做 db 的对象出来。将 或者 的子类这一种情况, 传递给那个构造函数去使用。from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyfrom sqlalchemy.orm import DeclarativeBaseclass Base(DeclarativeBase):passdb SQLAlchemy(model_classBase)你可以到那里去看看关于自定义那个基础模型类到底还有那些更多的信息, 这里提到的是在模型还有在表里面去了解更多。关于 对象在构造完成之后, db 对象将会允许您对用于定义模型的类进行访问, 同时也会对用于执行查询的部分提供支持以进行操作。那个对象本身还可以使用别的一些参数, 通过这些参数来对它所要管理的那些具体东西进行定制性的安排。配置扩展在下一步的工作当中, 我们需要把扩展的内容给连接到那个用 Flask 弄的应用程序里去, 这里头唯一必须要去做的配置, 就是这个键的内容了, 这个键实际上就是一个连接字符串的东西, 它主要就是去告诉那个东西到底应该要去连哪个数据库的。建立好Flask程序对象的这一步操作完成之后, 再把所有的配置信息给加载进来, 接着去调用一下那扩展类里面的那些关于初始化的方法来完成启动过程, 这里头, 就拿那个数据库的连接做个例子, 毕竟这个数据库里头存放的内容是被放在咱们那个所谓的应用实例文件夹里头的。# create the appapp Flask(__name__)# configure the SQLite database, relative to the app instance folderapp.config[SQLALCHEMY_DATABASE_URI] sqlite:///project.db# initialize the app with the extensiondb.init_app(app)请参见相关的配置说明, 以便弄懂连接字符串以及那些正在被使用的其他配置键。定义模型子类化 db.Model 以定义模型类。该模型将通过将 类名转换为 来生成表名。from sqlalchemy import Integer, Stringfrom sqlalchemy.orm import Mapped, mapped_columnclass User(db.Model):id: Mapped[int] mapped_column(primary_keyTrue)username: Mapped[str] mapped_column(uniqueTrue)email: Mapped[str]您可以参阅关于模型和表格的部分, 以此获取更多有关如何定义以及创建这些模型与表格的详细信息。创建表在你已经把所有模型还有表都定义好了之后, 就去调用那个操作来在数据库里面把那个表的架构给创建出来。因为这个操作是需要一个应用程序上下文才能运行的。既然你知道你现在并不处在一个请求的环境里面, 那就需要你亲自动手去手动去创建一个那个东西。with app.app_context():db.create_all()你要是把模型放到了其他模块里面去定义的话, 那么在正式调用的步骤还没开始之前, 你得先把这些模型给导入进来才行, 不然的话, 调用那边就压根儿搞不清楚这些模型到底是什么东西了。当数据库中已经存在某些数据表的时候, 它是不会对这些表进行更新操作的。要是你修改了模型里头所包括的那些列的话, 那么你就应当使用像 Flask- 这些迁移库来进行操作, 以便能够生成用于更新数据库结构的迁移文件来把那些变动给应用进去。查询数据在Flask视图或者命令行接口命令里面, 可以直接用 db.这个前缀来执行数据库查询操作, 并且也可以借此对模型里保存的数据进行各种修改处理。程序会主动给每一个模型定下一种特定的办法, 这种办法的主要任务, 就是把各种各样的带有名称的参数, 统统交给那些对应的数据库里的列以及其他的相关属性去处理。db..add(obj) 这个操作的作用是把一个对象添加进当前的会话里去, 这样它就有资格被插入到数据库中了, 如果你修改了这个对象的属性, 那么该对象自身也就跟着更新了接着看 db..(obj) 这一部分, 它的作用其实是删除某个指定的对象, 这里你要特别记住, 在你完成了数据的修改动作、执行了添加操作或者是进行了删除任务之后, 一定要去调用一下 mit() 这个方法才行。使用数据库查询语言来编写查询, 目的是为了从数据库内选取需要的数据内容。建立查询语句是这一工具的主要功能所在, 所以您应当阅读其提供的关于选择内容的具体教程, 这样才能全面地了解该如何操作。在通常情况下, 程序员会使用特定的括号包含参数的方法, 也就是点号加括号这种形式来调用方法, 以此获取到一个结果列表, 或者是用同样形式的另一个方法来仅仅获取一个单独的结果。app.route(/users)def user_list():users db.session.execute(db.select(User).order_by(User.username)).scalars()return render_template(user/list.html, usersusers)app.route(/users/create, methods[GET, POST])def user_create():if request.method POST:user User(usernamerequest.form[username],emailrequest.form[email],)db.session.add(user)db.session.commit()return redirect(url_for(user_detail, iduser.id))return render_template(user/create.html)app.route(/user/)def user_detail(id):user db.get_or_404(User, id)return render_template(user/detail.html, useruser)app.route(/user//delete, methods[GET, POST])def user_delete(id):user db.get_or_404(User, id)if request.method POST:db.session.delete(user)db.session.commit()return redirect(url_for(user_list))return render_template(user/delete.html, useruser)在相关文档中, 您或许会发现有使用 Model.query 来构造查询条件的情况。实际上, 这属于一种比较早期的操作接口, 并且已经被明确指出处于过时的状态。因此, 更为推荐的做法是直接通过 db... (以及嵌套的 db(...)...)) 来获取数据源对象, 并在此基础上进行数据库操作。请查阅关于修改和查询数据的内容, 以获取有关查询的更加详实的信息。需要记住的内容通常情况下, 您应该按照常规的做法去使用。您需要基于此来扩展实例, 进而完成创建、配置的工作, 并且提供对下列对象的访问权限。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

新网站怎么快速收录必做:保姆级建站教程与安全防坑指南 2026/9/28 0:36:47

新网站怎么快速收录必做:保姆级建站教程与安全防坑指南

新网站怎么快速收录必做:保姆级建站教程与安全防坑指南 自己不会代码想做网站,最怕的不是做不出来,而是做完就被黑。很多老板为了赶进度,直接套用网上那些免费的“快速收录”脚本,结果上线不到三天,后台密码泄露,首页被挂满赌博广告,不仅搜索引擎权重…

阅读更多 →
一文搞懂网站推广的方案设计怎么写,避坑指南 2026/9/28 0:36:47

一文搞懂网站推广的方案设计怎么写,避坑指南

一文搞懂网站推广的方案设计怎么写,避坑指南 找建站公司最怕什么?怕被坑,怕花大钱买个烂站,更怕上线后没人看,推广费打水漂。很多老板拿到一份厚厚的《网站推广方案》就头大,全是虚词,没干货。今天不整那些虚头巴脑的理论,直接拆开揉碎了讲,…

阅读更多 →
网站制作报价大约多少?避坑指南与前端规范详解 2026/9/28 0:36:41

网站制作报价大约多少?避坑指南与前端规范详解

网站制作报价大约多少?避坑指南与前端规范详解 改个需求建站公司拖一周,这种憋屈事你是不是也遇到过?很多老板在找外包时,只盯着“网站制作报价大约”多少,却忽略了报价背后的技术债务和设计规范,结果钱花了,网站慢得像蜗牛,改个按钮颜色还要排期三天…

阅读更多 →
广州建站网站前十名避坑指南:图解步骤拆解真实报价 2026/9/28 0:36:41

广州建站网站前十名避坑指南:图解步骤拆解真实报价

广州建站网站前十名避坑指南:图解步骤拆解真实报价 改个需求建站公司拖一周,这种憋屈事你肯定经历过。很多老板找广州建站公司,看到“前十名”的广告就冲进去,结果签完合同发现报价单像天书,改个按钮颜色要加钱,换个首页Banner还要等排期。…

阅读更多 →
phpcms主题移植wordpress安全对比评测与防黑实操 2026/9/28 0:36:03

phpcms主题移植wordpress安全对比评测与防黑实操

phpcms主题移植wordpress安全对比评测与防黑实操 网站被黑挂马不知道怎么办?这是无数站长深夜崩溃的根源。很多同行在对比评测 phpcms 与 wordpress…

阅读更多 →
磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源 2026/9/28 0:35:20

磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源

磁县网站制作公司选型一文搞懂:改需求慢的3种技术根源 改个按钮颜色,建站公司拖一周才给反馈?这种憋屈感,很多磁县本地企业老板都尝过。别急着骂人,先看看他们用的是啥技术栈。很多“慢”不是态度问题,是技术债压身。本文不聊虚的,直接拆解三种主流建…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉