Flask07——数据库操作-增删改查作者

Flask SQLALchemy 的使用 使用 Flask-SQLAlchemy 定义模型非常简单。你只需继承db.Model并定义类属性即可。每个类属性都将映射到数据库表中的一列。Flask-SQLAlchemy 是一个强大的 Flask 扩展,它简化了在 Flask 应用中使用 SQLAlchemy 的过程。通过定义模型类,你可以轻松地创建数据库表,并通过这些类的实例来操作数据库中的数据。随着应用的增长,Flask-Migrate 可以帮助管理数据库模型的变更。 阅读详情

从黑窗口操作数据库到网页操作数据库

终于到了我们要操作数据库的时候了,接下来的学习将会让你更有成就感,学完了基础的枯燥的语法,现在就到了我们去做一些功能的时候了,我们在网上看到的形形色色的网站从技术上来说其实可以包括两大块:代码实现业务逻辑,数据库保存真实的数据。两者有机的配合才得以形成了我们看到的各种网站。具体数据该怎么展示,这就是代码要做的事情了,这就是我们经常会用到的查询数据。另外,当然还有访问者与网站的交互,可能会添加新数据到网站,修改完整的信息,或者删除一些网站的内容。这些其实都是通过代码来调用数据库来实现最终的增删改查,而已经不是我们之前在黑窗口敲命令来实现增删改查了。网站的增删改查都是由各个请求激发的。那么代码如何操作数据库呢?当然有些同学可能用过由pymysql提供的操作数据库的方法,当然那只是由pymysql包在了我们原生mysql语句的外面,实际上你写的还是原生的sql语句,只是换到了代码里面。那么今天我们讲的操作数据库的方法就要颠覆之前原生语句的实现方式,而是采用我们Python中的类实例化对象,调用对象中的各种方法来操作数据库。

ORM对象关系映射

试想一下,如果我们可以这样定义一个类,比如我们定义一个user类,接着再给user类定义一些属性,比如id、name。然后我们还可以像定义数据库字段一样的来定义id为整型,主键,且可以自动增长。name为字符串,默认不能为空。然后我们可以通过某个指令直接在某个数据库test1中新建一张数据表user。这样我们就通过代码的类新建了数据库的一张表。表建好了,那么随之而来的自然就是要操作表了。当然我们也不会像以前那样写原生的sql语句,我们还可以实例化一下user类,然后用实例化后的user对象,调用类下面的方法比如:user.save(),user.find(),user.edit(),user.delete()来直接操作数据库。做我们的增删改查。是不是特别方便呢?当然上面是伪代码,不是真实的语法。答案是肯定的,这就是我们下面要讲的orm技术,全称为object relation mapping:对象关系映射。通俗来讲就是我们要用对象的形式来解决数据的关联关系问题,也就是把由数据库做的事情挪到了代码层。

flask_sqlalchemy扩展的安装和配置

而在我们的flask框架中,是通过一个扩展来实现的:flask_sqlalchemy。
要使用这个扩展首先需要安装一下:pip install flask_sqlalchemy ,另外要调用mysql我们还需要安装一个mysql的驱动:pip install pymysql。安装了这两个包之后我们就可以首先进行一些链接数据库的配置了。链接数据库的配置项我们可以写在配置文件当中。配置项如下:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/test1?charset=utf8'

等号前面的配置项名称是固定的,必须这样写才能被框架正确识别,等号后面的含义:链接的数据库类型+使用的驱动://用户名:密码@数据库地址:端口/数据库名称?数据库编码。接着我们还可以再配置一项内容:SQLALCHEMY_ECHO=True。这个配置项的含义是要把我们操作数据库的语句打印到控制台。
配置完之后,接下来我们就需要用flask_sqlalchemy来实例化出来我们的db对象了,并且要绑定到我们的app上面,代码如下:

from flask_sqlalchemy import SQLAlchemy  # 导入扩展包

app = Flask(__name__)

app.config.from_object('setting')  # 引入数据库配置项

db = SQLAlchemy(app=app)  # 实例化SQLAlchemy类,并绑定到app上

经过上面之后,我们才能在flask框架中使用由flask_sqlalchemy扩展提供的各种操作。

创建表

下面我们用flask_sqlalchemy提供的建表语句来通过类的形式创建表。

class Author(db.Model):
    id = db.Column(db.Integer, primary_key=True, comment='作者主键ID')
    name = db.Column(db.String(30), nullable=False, comment='作者姓名')

下面说一下上面的建表语句的注意点。首先要想使得我们创建的这个类能跟数据库的表产生映射关系,首先很重要的一点就在于要让我们这个类继承自db.Model类,然后表中的每个字段都是通过db.Column来创建的,里面的参数既是这个字段的约束。

db.Integer:定义此字段为整型
primary_key:定义此字段为主键且自动递增
comment:定义此字段注释
db.String(30):定义此字段为字符串,括号内定义字符串长度
nullable:定义此字段是否为空,False即不为空

上面就是关于类定义数据库表的具体解释。那么我们怎么来创建表呢?

创建表

可以通过在在main的判断条件的地方加建表语句db.create(),一般为了避免数据冗余会在创建之前先清空一下数据库,会加上db.drop(),来删除之前存在的所有数据。具体如下:

if __name__ == '__main__':
    db.drop_all()
    db.create_all()
    app.run(port=9000)

然后重启服务,如果你配置正确,这个时候你会在控制台看到打印出来的建表语句,能打印出来就是我们刚才配置的SQLALCHEMY_ECHO=True在起作用。然后我们可以用可视化工具navicat查看一下我们是否成功创建了表呢。创建之后就可以把db.drop_all()和db.create_all()给注释掉,不然等下我们写入数据的话,会把我们的数据给清除掉。需要使用的时候再打开。

模板

<!--base.html文件-->
{% block top %}
    <a href="{{ url_for('index') }}">首页</a>
    <a href="{{ url_for('all_authors') }}">所有作者</a>
    <a href="{{ url_for('add_author') }}">添加作者</a>
    <hr>
{% endblock top %}
{% block content %}
    内容
{% endblock content %}
{% block bottom %}
    <hr>
    底部
{% endblock bottom %}
<!--index.html文件-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    {% extends 'base.html' %}
    {% block content %}
        首页
    {% endblock content %}
</body>
</html>

添加作者

@app.route('/')
def index():
    return render_template('index.html')
    
@app.route('/add_author', methods=['GET', 'POST'])
def add_author():
    if request.method == 'POST':  # 接收数据和提交到数据库都是用的post请求
        name = request.form.get('name')  # 接收要添加的数据,通过参数名获取传递的内容
        new_author = Author(name=name)  # 实例化Author类生成一个新对象,对应数据库里面的一条新的记录
        # 有错误立即显示出来。
        # db.session.add(new_author1)  # 做添加的准备
        # db.session.commit()  # 真正的提交
        # try except可以将错误捕获隐藏,自己自定义错误提醒。
        try:
            db.session.add(new_author1)  # 做添加的准备
            db.session.commit()  # 真正的提交
            flash('添加成功!')
        except Exception as e:
            flash('添加不成功!')
    return render_template('add_author.html')  # 展示模板页面是用的get请求
<!--add_author.html文件-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加作者</title>
</head>
<body>
    {% extends 'base.html' %}
    {% block content %}
        <form action="" method="post">
            作者名称:<input type="text" name="name" value="" > <br>
            <input type="submit" value="确认添加">
        </form>
        {% for message in get_flashed_messages() %}
            <span style="color:red">{{ message }}</span>
        {% endfor %}
    {% endblock content %}
</body>
</html>

所有作者

@app.route('/all_authors')
def all_authors():
    authors = Author.query.all()  # 通过此方法可以获取作者表所有作者记录
    print(authors)
    return render_template('all_authors.html', authors=authors)  # 传递给模板,来遍历所有作者记录
<!--all_authors.html-->

<!DOCTYPE html>
<html lang="en">
<head><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>所有作者</title>
</head>
<body>
    {% extends 'base.html' %}
    {% block content %}
        {% for author in authors %}
            <p>{{ author.id }}、{{ author.name }} |
                <a href="{{ url_for('edit_author', author_id=author.id) }}">编辑</a> |
                <a href="{{ url_for('delete_author', author_id=author.id) }}">删除</a> |
            </p>
        {% endfor %}
        {% for message in get_flashed_messages() %}
            <span style="color:red">{{ message }}</span>
        {% endfor %}
    {% endblock content %}
</body>
</html>

编辑作者

# 和添加不同的是需要传递修改数据的id,才知道你要修改哪条数据
@app.route('/edit_author', methods=['GET', 'POST'])
def edit_author():
    author_id = request.args.get('author_id')  # 确定拿到要修改哪条记录的id
    one_author = Author.query.get(author_id)  # 根据当前数据的id,通过主键到数据库拿到当前id的记录(对象)
    if request.method == 'POST':
        name = request.form.get('name')  # 需要修改的数据
        one_author.name = name  # 将传递过来的name的值赋值到现有对象(记录)的相应字段name上
        try:
            db.session.add(one_author)
            db.session.commit()
            flash('修改成功!')
        except Exception as e:
            flash('修改不成功!')
        return redirect(url_for('all_authors'))
    return render_template('edit_author.html', one_author=one_author)  # 传递作者现有数据到模板,以备显示出来
<!--edit_author.html-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>编辑作者</title>
</head>
<body>
    <form action="" method="post">
        <input type="text" value="{{ one_author.name }}" name="name">
        <input type="submit" value="确定编辑">
    </form>
</body>
</html>

删除作者

@app.route('/delete_author')
def delete_author():
    author_id = request.args.get('author_id')  # 跟编辑一样需要获取当前用户的id
    one_author = Author.query.get(author_id)  # 通过id获取当前记录(对象)
    try:
        db.session.delete(one_author)  # 删除整条记录(对象)
        db.session.commit()
        flash('删除成功!')
    except Exception as e:
        flash('删除不成功!')
    return redirect(url_for('all_authors'))  # 删除之后跳转到所有作者页面
基于LSTM的多变量温度预测(python从入门到入坑) 基于LSTM的多变量温度预测(python) ——我保证他能够运行,而且结果能够让你满意(如果你和我一样都是一个新手的话) 这里写目录标题基于LSTM的多变量温度预测(python)——我保证他能够运行,而且结果能够让你满意(如果你和我一样都是一个新手的话)一、我为什么要写这些?二、具体做了什么?三、源代码切块加注释,恳请批评指正(●’◡’●)ノ 一、我为什么要写这些? 因为让人抓狂的课程大作业,我小组选择了一个多变量预测方面的课题,在我这个大三基本上还没接触过Python数据处理,甚至对神经网络什么的都 阅读详情

相关推荐

了解随机振动疲劳分析中 Ansys nCode DesignLife 的平均应力校正

通过选择静态环境,我们可以将其结果视为疲劳计算的平均应力,如图 3 所示,因此从静态偏移载荷工况中提取的平均应力用于转移预测雨流计数中所有循环的平均值。您可以通过观看下面的教学视频获得宝贵的见解,该视频将指导您完成利用 Ansys nCode DesignLife 分析平均应力对随机振动载荷下结构的影响的过程。它基于 R 比率或平均应力水平。另一方面,平均应力校正可以帮助消除平均应力的负面影响,提高结果的保真度。Ansys nCode 提供先进的平均应力校正技术,使工程师能够考虑平均应力对疲劳寿命的影响。

jkh920184196的博客 1520

图书管理系统(三):作者列表增加、删除和编辑

步骤一:创建作者列表 步骤二:添加作者 步骤三:删除作者 步骤四:编辑作者 步骤一:创建作者列表 1.先创建数据表 class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(ma...

weixin_30882895的博客 578

近4000张真实城市场景行人数据集:YOLO训练实战指南

行人检测是计算机视觉在智能驾驶与机器人感知中的基础任务,其核心挑战在于模型对真实道路场景的鲁棒性——尤其在小目标、遮挡、光照变化及中国特有交通参与者(如外卖骑手、接娃家长)下的泛化能力。本文围绕轻量化、高覆盖、强落地性的近4000张实采图像,系统阐释如何构建面向YOLO系列模型的高质量训练数据集:从四维场景采样策略(光照-遮挡-尺度-姿态)出发,解析标注规范对检测精度的关键影响,并说明数据增强需服务于真实干扰源(雨痕、动态模糊、对比度衰减),而非盲目堆叠。该数据集专为已掌握YOLO训练流程的算法工程师、嵌入

weixin_32495691的博客 298

使用flask框架实现对数据库的相关操作的介绍说明

from flask import Flask from flask_sqlchemy import SQLAlchemy  #操作数据库的扩展包 from flask_script import Manager  # 用命令操作的扩展包 app = Flask(__name__) #创建对象 db = SQLAlchemy(app) manager = Manager(app) 一...

qq_37253540的博客 673

开关电源三大基本拓扑:反激、正激与桥式选型本质

开关电源拓扑是电力电子系统设计的核心基础概念,其本质决定能量传递路径、器件应力分布与系统物理边界。反激拓扑以耦合电感形式实现隔离与升降压,适用于小功率AC-DC场景;正激拓扑依赖实时能量传递与强制复位机制,支撑中功率高效率需求;桥式拓扑(含推挽/半桥/全桥)通过电压应力分摊与双向磁化,成为大功率系统的刚性选择。理解三者在磁芯工作模式、电流连续性、直流偏磁抑制等方面的原理差异,直接关系到效率、温升、EMI及可靠性等关键技术指标。本文聚焦反激、正激、桥式三大工程级基本拓扑的物理本质与落地约束,揭示从需求参数到电

cqwmy840702的博客 380

Flask-sqlalchemy 语法总结

Flask-sqlalchemy 语法总结 Flask-sqlalchemy 语法总结 ** DDL db.create_all() :创建实体表 db.drop_all(): 删除表 1)插入表 Db.session.add(user) #user是实体对象 ##批量插入 Db.session.add_all([user1,user2,user3,…..]) ##提交 Db.session...

起飞的木木的博客 889

涨点神器:基于YOLOv8的SPD-Conv小目标检测实战教程——让低分辨率场景检测精度飙升

从代码修改到场景落地,每一步都围绕“提升检测精度”这个核心目标,而实际数据也证明了这项技术的强悍——它不是实验室里的花拳绣腿,而是能真正解决工业痛点的涨点神器。在实际场景中,比如无人机巡检的低分辨率航拍图中,对电线、小设备的检测,YOLOv8-SPD的漏检率降低了70%以上。落地时,只需将训练好的YOLOv8-SPD模型部署到边缘设备或云端,即可享受其在小目标、低分辨率场景下的强大性能。的特征融合模块中,通过插入SPD-Conv,让模型在处理小目标时,既能保留空间细节,又能增强通道维度的特征表达。

m0_71589036的博客 158

flask拓展(数据库操作)

目录 一、初始Flask数据库操作 二、深入Flask数据库操作 三、补充Flask数据库多对多关系操作 一、初始Flask数据库操作 1.Flask模型 Flask默认并没有提供任何数据库操作的API 我们可以选择任何适合自己项目的数据库来使用 Flask中可以自己的选择数据,用原生语句实现功能,也可以选择ORM(SQLAlchemy,MongoEngine) SQLAlchem...

weixin_30673715的博客 293

【LLC快速上手系列】如何在LLC谐振里优雅地调死区时间?

用示波器死盯Vds波形,找到ZVS临界点;别听“经验值”,亲自调才准;死区时间并非越短越好,也不是越长越稳,而是要“刚刚好”;用热成像看MOSFET温升变化,ZVS调好了,温度马上掉2~5℃;轻载难ZVS?适当提升频率 or 降低Lr可破!

weixin_43199439的博客 496

rk3568 修改开机动画

bootanimation.zip是一个Android设备启动时播放的动画文件,它包含了一系列的图片和描述文件,用于描述动画的播放顺序和持续时间。

weixin_35723192的博客 2730

<Flask>-sqlalchemy操作数据库

文章目录1 简述2-导包与配置3-增删改查3.1 增3.2 删3.3 改3.4 查4 一对多模型4.1 理解4.2 代码实现5 多对多模型5.1 理解5.2 代码实现6-自关联一对多模型6.1 理解6.2 代码实现7-自关联多对多模型7.1 理解7.2 代码实现8-数据库迁移写在最后的杂七杂八 1 简述 操作数据分为数据库模型的创建于数据库迁移,数据库的创建依赖于 flask-sqlalchemy 一对多模型 多对多模型 自关联一对多模型 自关联多对多模型 2-导包与配置 import flask_sq

kobe_okok的博客 2224

MIPI D-PHY TX 一致性测试实例解析 Part 02

如果测过1.3.x,并对这组测试的细节已经熟悉的前提下,1.4.x的测试将会变得轻松,因为几乎相同的测试项被用于时钟通道的数据测量。

一只豌豆象的博客 8321

Flask框架的学习——07—(Flask操作MySQL数据库、使用ORM对数据库的增删改查操作、SQLAlchemy属性常用数据类型)

1、Flask操作MySQL数据库 在上一篇博客中创建完数据表,并且做完和数据库的映射后,接下来让我们添加数据进去。 from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm imp...

weixin_42118531的博客 650

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Flask+LayUI开发手记(四):弹出层实现增删改查功能

在上一节用dataTable实现数据列表时,已经加了表头工具栏和表内工具栏,栏内的按钮功能都是用来完成数据的增删改查了,这又分成两类功能,一类是删除或设置,这类功能简单,只需要选定记录,然后提交到后端服务进行特定字段的修改即可,另一类是查明细、增加、修改记录,这三类功能,都需要生成一个新的数据编辑界面完成记录全内容的展示,然后输入相应的字段值,提交到后端服务进行相应的数据更新操作,同时,在录入和提交时,还需要对录入字段值进行合规检查。对前端界面来说,最重要的参数是当前记录的id值,以及当前页数。

hbrown的博客 1644

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

flask_sqlalchemy 实现数据的增删改查操作案例

flask_sqlalchemy 实现数据的增删改查操作案例 刚刚接触flask_sqlalchemy,自己做了 一个增删改查的案例,分享给大家 。 链接:https://pan.baidu.com/s/1lOzjmHXb-bs39hxWX0n7_g 提取码:dj64

一介书生 543

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Flask-SQLAlchemy:ORM操作数据库增删改查的详细指南

Flask-SQLAlchemy 是 Flask 框架的一个强大扩展,使得与数据库的交互变得简单和直观。ORM(对象关系映射)允许我们使用 Python 类和对象来表示数据库中的表和记录,从而简化了增删改查(CRUD)操作。本文将详细介绍如何使用 Flask-SQLAlchemy 进行这些操作。定义一个简单的模型,例如用户模型User通过本文,您已经了解了如何使用 Flask-SQLAlchemy 进行数据库的增删改查操作。使用 Flask-SQLAlchemy,您可以轻松地管理数据库操作,提高开发效率。

霍格沃兹测试学院的博客 935

【Flask 数据库 操作】 SQLAlchemy 与 Flask-SQLAlchemy

Enum:枚举类型。Double:双精度浮点类型,映射到数据库中是double类型,占据64位 (SQLALCHEMY中没有)。创建属性来映射到表中的字段,所有需要映射到表中的属性都应该为Column类型。Float:浮点类型,映射到数据库中是float类型。LONGTEXT:长文本类型,映射到数据库中是longtext类型。String:可变字符类型,映射到数据库中是varchar类型。Boolean:布尔类型,映射到数据库中的是tinyint类型。类 属性,来指定这个模型映射到数据库中的表名。

qq_39286483的博客 1351

【Flask框架】模型Model

Flask作为一款MVC的框架,提供ORM的功能。

gecko 1885

Flask框架内容基础4 连接数据库及orm模型与表的映射

Flask-SQLAlchemy简化了在Flask应用中使用SQLAlchemy的过程,提供了一些方便的功能,例如自动管理数据库会话和事务,以及提供了一些Flask特定的扩展,如Flask-Migrate用于数据库迁移。ORM框架提供了一系列的API和工具,用于执行数据库的增删改查操作,并处理对象与数据库之间的映射和转换。然后输入安装命令时,显示需要的工具库已经存在,造成这样的原因是由于使用python虚拟解释器时,当前解释器内没有该工具库,但是在其他的环境中,已经下载了这个工具库。

m0_59362850的博客 692

Flask SQLAlchemy 数据库笔记

title: Flask SQLAlchemy 数据库 copyright: true top: 0 date: 2018-07-24 13:27:03 tags: [Flask 数据库,sqlalchemy,数据库映射] categories: Flask permalink: password: keywords: [Flask 数据库,sqlalchemy,数据库映射] descripti...

浪子燕青的博客 1389

python标准化开发框架_Python Flask框架——全栈开发

课程来自知了传课的Python Flask框架——全栈开发,共60+小时的课时,知识体系完整,实战贴近企业,实打实的干货,本套课程的目标是从零基础开始,使用Flask框架开发企业级的项目。课程中不仅包含了Flask框架本身的知识点,更是站在全栈的角度讲解了如何结合Flask使用ajax完成异步调度,使用redis实现大型网站的缓存优化,使用celery实现邮件的异步发送等。更是紧随时代的脚步加入了...

weixin_42363231的博客 668

Flask高级应用06---模型的CRUD和高级用法

一、数据映射(数据库crud基础操作) 注意:在迁移前首先要开启数据库mysql 1.创建模型==create_all() 对创建的模型数据进行迁移,这个方法只能用于首次创建,后面迁移需要用migrate(不建议用),建议用sql语句,orm实现的数据库迁移不是最有方式 @blue.route('create_db/') #设置路由信息 def create_db(): ...

清平乐的技术专栏 953

知了课堂python_Python框架Flask系列课程(2)—全栈开发[知了课堂]

教程目录:课时01.【Flask预热】课程介绍.flv课时02.【Flask预热】Flask课程准备工作.flv课时03.【Flask预热】URL组成部分详解.flv课时04.【Flask预热】web服务器+应用服务器+web应用框架.flv课时05.【Flask.URL】第一个flask程序详解.flv课时06.【Flask.URL】debug模式详解.flv课时07.【Flask.URL】配置...

weixin_39566864的博客 1182

59 - restful接口案例(新闻)-07-新闻分类增删改查

新闻类型返回格式# 添加-参数校验type_parser.add_argument("typeName", type=str, required=True, help="必须添加新闻分类名字", location=["form", "json"])# 修改-参数校验update_type_parser.add_argument("id", type=int, required=True, help="必须添加要修改的分类id")# 删除-参数校验。

m0_58250910的博客 145

vue基于python高校教材管理系统的设计与实现_8g07s

Spring封装了很多的java类库文件,在开发过程中,不需要写太多复杂的类文件,只需要引用spring这个框架,就可以完成快速开发的需要,所以Java编程的逻辑代码就变得比较清晰,各层之间的解耦性也比较强,可重用性也得到了很好的发挥,使得开发难度也更加轻松容易,它的主要两个特性就是依赖注入、面向接口思想;Vue实现了MVVM框架,通过后台的模型进行业务逻辑的处理,并将数据绑定到视图层中,在视图层绑定显示控件,将Model对象的数据绑定到页面控件中,实现数据的自动同步。监控系统性能指标,设置告警机制。

我的个人的博客 1108
上一篇: Flask06——Jinja2模板引擎
下一篇: Flask10——蓝图
零寂前端
博客等级 码龄11年 59粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值