快速入门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(...)...)) 来获取数据源对象, 并在此基础上进行数据库操作。请查阅关于修改和查询数据的内容, 以获取有关查询的更加详实的信息。需要记住的内容通常情况下, 您应该按照常规的做法去使用。您需要基于此来扩展实例, 进而完成创建、配置的工作, 并且提供对下列对象的访问权限。
企业数字化 ERP 产品动态
相关推荐
direnv 给每个项目自动切环境变量,再没手动 source 过 你是否遇到过这样一个情况: 在A项目的终端之中执行相应的命令, 然而所实际使用的却是B项目的数据库连接配置, 直至花费了相当长的时间之后才发现, 自己连接的数据库出现了错误。这种情况是我确实存在, 并且这样的状态并不是仅仅发生了一次。根本原因就在于, 环境变量这一东西是… · 2026/9/27 22:54:14
深入理解 Python 版本降级 对版本降级这个事, 得深入地去理解它。在项目开发的流程里, 因为会碰到像项目所依赖的东西、版本会不会匹配得上, 或者是为了做测试需要这种状况。所以, 我们在某些时候就得把版本往低了降, 也就是做降级操作。这篇文章将会从头到尾详细地聊聊版本降低的那些基础知识, 具体的操… · 2026/9/27 22:54:08
python自动化测试应用-番外篇--接口测试(一) 这是番外篇1, 标题是book-自动测试-番外篇-接口测试1。--辣么丑1.1概要大家好, 我是辣么丑, 《安卓app自动化测试》这个系列的文章目前已经更新了三个部分的内容了, 今天是来给大家发一个额外补充的番外篇章节, 主要内容是讲解那个接口API测试方面相关的事情。1.2 接口测试理论… · 2026/9/27 22:54:08
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
BootCamp6.1.7071驱动包手动安装与回滚全攻略 简介:这是一份面向2019年中期四端口MacBook Pro 15寸、13寸带触控条机型,以及2018年中期MacBook Pro 13寸带触控条机型的Boot Camp 6.1.7071驱动包,主要服务于需要在Mac上安装Windows、更新Boot Camp驱动或修复双系统引导的用户。许多用户在安… · 2026/9/27 23:59:42
Python爬虫京东评论分析:从JSON采集到情感可视化 简介:这是一套基于Python爬虫的京东商品评论采集与分析系统,覆盖文本情感分析和可视化展示,适合计算机、人工智能、电商数据挖掘等方向的学生用于毕业设计或课程实践,也可作为初学者进阶NLP项目的参考。压缩包共113个文件… · 2026/9/27 23:59:36
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25