Flask06——Jinja2模板引擎

【django】django中使用jinja2模板 1、jinja2介绍 Jinja2:是 Python 下⼀个被⼴泛应⽤的模板引擎,是由Python实现的模板语⾔,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和⼀系列强⼤的功能,尤其是Flask框架内置的模板语⾔ 由于django默认模板引擎功能不⻬全,速度慢,所以我们也可以在Django中使⽤jinja2, jinja2宣称⽐django默认模板引擎快10-20倍。 Django主流的第三⽅APP基本上也都同时⽀持Django默认模板及jinja2,所以要⽤jinja2也不会有多少障碍。 阅读详情

为什么要用模板

到目前为止,我们的视图函数返回的一直是简单的字符串,而我们很清楚的知道,我们的flask框架是做web开发的,也就是要做出来漂亮的页面出来,可是我们现在仅仅只返回了几个字符串,好像跟我们所预想的网站相差甚远。我们要怎样做出我们所看到的各种绚丽多彩的网站呢?答案就是:可以通过模板实现。那么,模板是什么呢?作用为何?模板其实就是一个个的html页面,我们知道html页面最基本的作用就是用来展示,而我们的html页面用到我们的flask框架中,就可以配合实现从处理业务逻辑到返回响应的效果。

这里我们提到了两个功能:1、处理业务。2、返回响应。这两个功能也是我们视图函数的两个功能。而如果我们把这两个功能都写在视图函数内部的话,就会增加视图函数的复杂度及维护成本。那么模板就很好的解决了这样一个问题,将处理业务的代码和页面展示代码分开,降低了代码的耦合度。如果我们需要在展示页面放置变量的话,可以由视图函数将变量传递到模板中来使用。

模板的功能

提到模板这个功能,就不得不说一下Jinja2这个库,这个库就是专门做模板引擎的,也就是解决试图函数和模板调用,传值等一系列问题的。

模板内部放置的也是一个大的字符串,只是我们把这个大字符串单独放到了一个html页面,基于html语言的语法,将页面进行布局,划分页面结构,以备未来给css来设置样式,给js来设置交互效果。
而我们需要从试图函数中传递过来的变量,需要用双大括号{{ }}括起来,我们的Jinja2模板引擎就可以配合我们的框架将变量给解析出来。而解析变量的这个过程我们称之为渲染。
另外,我们还可以在页面当中写业务逻辑 if else for循环登录,这些业务逻辑一般需要包在{% %}的符号中,才能在html页面当中被识别出来,背后还是Jinja2模板语言帮我们进行识别的。

如何调用模板和传递变量

我们的模板文件需要放到和入口文件start.py同级的名称叫做templates的文件夹中。flask提供了render_template函数来调用模板,第一个参数即为html页面的名称,后面可以放置多个我们需要传递到模板中的变量,然后在模板页面就可以通过{{变量名}}的方式进行调用了。另外模板也支持变量的计算,通过字典.下标的形式取到字典某个下标对应的值等功能,都会在下面通过代码注释给大家标注出来。文件名称都会写到代码最上方。

# start.py文件
# 导入包
from flask import Flask, render_template

@app.route('/')
def index():
    my_str = 'Hello World!'
    my_int = 100
    my_list = [1, 2, 3, 4, 5, 6]
    my_dict = {'name': 'xiaoming', 'age': 16}
    return render_template('index.html',
                            my_str = my_str,
                            my_int = my_int,
                            my_list = my_list,
                            my_dict = my_dict
                           )  # 第一个参数即为模板文件名称,index.html文件放在和此start.py文件同级的templates文件夹下面,后面的参数即为传递到模板中的变量。

在模板index.html文件中就可以这样使用了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>首页</h1>
    {{ my_str }} <br>
    {{ my_int }} <br>
    {{ my_list }} <br>
    {{ my_dict }} <br>
    <hr>

    {{ my_int + 10 }} <br>  <!--变量和整型计算-->
    {{ my_int + my_list[2] }} <br>  <!--通过中括号形式访问列表元素且进行计算-->
    {{ my_list.5 }} <br>  <!--通过 列表.下标 方式取值-->
    {{ my_dict['name'] }} <br>  <!--通过中括号形式取值-->
    {{ my_dict.age }}  <!--通过 字典.下标 方式取值--->
</body>
</html>

运行请求首页视图函数,看看是不是正常打印了各个变量呢?

条件判断语句和for循环

start.py文件的视图函数中加如下变量:


    user = {'is_login': False}
    books = [
        {'name': '西游记', 'author': '吴承恩'},
        {'name': '三国演义', 'author': '罗贯中'},
        {'name': '红楼梦', 'author': '曹雪芹'},
        {'name': '水浒传', 'author': '施耐庵'}
    ]

模板中实现if else判断及for循环

    {% if user.is_login %}
        <a href="">退出</a>
    {% else %}
        <a href="">登录</a>
    {% endif %}

    {% for book in books %}
        <p>{{ loop.index }}、{{ book.name }}------{{ book.author }}</p>
    {% endfor %}

过滤器

对于我们传递到模板当中的变量,有时候可能需要做一些改变,或者是格式化,运算等等。对于此类需求,Jinja2也给我们提供了过滤器来解决。过滤器就相当于我们在Python中的函数,传递值到过滤器,就会按照过滤器的功能给我们返回相应的结果,使用形式是这样的{{ 变量 | 过滤器 }},我们可以看看下面在模板中怎么使用过滤器的。

    {{ my_str | upper }} <br>  <!--全部字母转为大写-->
    {{ my_str | lower }} <br>  <!--全部字母转为小写-->
    {{ my_list | first }} <br>  <!--取列表第一个元素-->
    {{ my_list | last }} <br>  <!--取列表最后一个元素-->
    {{ my_list | length }} <br>  <!--计算列表长度-->
    {{ my_list | sum }} <br>  <!--计算列表元素总和-->
    {{ my_list | sort }} <br>  <!--对列表元素进行排序-->
    {{ [6,2,3,1,5,4] | sort }} <br>  <!--对列表元素进行排序-->

过滤器的功能已经在后面注释了,运行看看是否能达到应有的效果。

自定义过滤器

另外,我们还可以自定义过滤器,可以在flask入口文件当中进行定义。

# 此过滤器功能:过滤掉列表中大于3的元素
@app.template_filter('filter_large')  # 自定义过滤器,参数为装装饰器的名称,也就是我们在模板中用的名字
def filter_large(my_list):
    new_list = []  # 定义空列表
    for i in range(len(my_list)):  # 遍历传递过来的列表
        if my_list[i] <= 3:  # 判断每个元素的值是否小于等于3
            new_list.append(my_list[i])  # 如果小于等于3则追加到新列表中
    return new_list  # 返回新列表

在模板中就可以这样来使用

{{ my_list | filter_large }}

运行看看效果。

模板中定义宏

宏其实也可以看成能够批量生成HTML标签的函数,定义和使用如下:

    <!--在模板中定义宏格式:macro开头,宏名称(标签各属性)-->
    {% macro input(label='', name='', type='text', value='') %}
        <!--定义具体输出结果,将参数接收过来进行属性的赋值-->
        <label>{{ label }}</label><input type="{{ type }}" name="{{ name }}" value="{{ value }}">
    {% endmacro %}
    <!--以endmacro结束-->
    <!--宏的使用-->
    <form action="">
        <!--宏名称(传递值到宏中)-->
        {{ input('用户名:', 'username') }}
        {{ input('密码:', 'passwd', 'password') }}
        {{ input(type='submit', value='注册') }}
    </form>

模板的继承

我们在访问网站的时候一般都能感觉到网站的顶部和底部基本对于所有的页面都是固定不变的,那么在我们的模板当中对这种需求也有相应的解决方案。可以定义一个基础模板base.html,然后再定义一个首页index.html。让首页继承基础模板base.html,顶部和底部就使用基础模板的,只修改中间部分。代码如下

<!--base.html-->
<!--定义顶部代码块-->
{% block top %}
    顶部
    <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>Index</title>
</head>
<body>
    <!--继承基础目标-->
    {% extends 'base.html' %}
    <!--重写中间代码块-->
    {% block content %}
        首页
        <hr>
    {% endblock content %}
</body>
</html>

最后通过视图函数index调用index.html模板后,就能实现预期的效果。

包含

下面来演示一下模板的包含,也就是可以在一个模板当中把另外一个模板的内容包含进来

<!--index.html-->
    <h1>首页</h1>
    <!--将hello.html模板包含进来-->
    {% include 'hello.html' ignore missing %}  <!--ignore missing作用可以起到如果hello.html不存在的话不报错-->
    <h3>底部</h3>
<!--hello.html-->
<h2>Hello</h2>

这样就可以把hello.html的内容包含到首页当中。

模板中访问内置函数和对象

在模板中还可以访问flask内置的函数和对象

# setting.py文件
DEBUG = True
TEST = 'test配置项'
SECRET_KEY = 'abc'
# start.py文件
from flask import Flask, render_template, session, g, request

app = Flask(__name__)

app.config.from_object('setting')


@app.route('/')
def index():
    session['new'] = '新闻'
    print(session['new'])
    g.name = 'g变量name'
    return render_template('index.html')


@app.route('/lists')
def lists():
    return '文章列表页'


@app.route('/detail')
def detail():
    id = request.args.get('id')
    return '文章{}内容'.format(id)


if __name__ == '__main__':
    app.run(port=8919)
<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
</head>
<body>
    <h3>{{ config.TEST }}</h3>  <!--模板中调用配置项-->
    <h3>{{ request.url }}</h3>  <!--模板中获取请求地址-->
    <h3>{{ config.SECRET_KEY }}</h3>  <!--模板中调用配置项-->
    <h3>{{ session['new'] }}</h3>  <!--模板中调用session值-->
    <h3>{{ g.name }}</h3>  <!--模板中调用g变量属性-->
    <h3><a href="{{ url_for('lists') }}">文章列表页</a></h3>  <!--模板使用url_for-->
    <h3><a href="{{ url_for('detail', id=1) }}">文章详情页</a></h3>  <!--模板使用带参数的url_for-->
</body>
</html>

flash闪现

当我们登录某个网站输入用户名,密码等信息后,如果有错误就会在网页上展示出来相应提示内容,flash闪现就是用来实现这个功能的。只要我们在视图函数中调用flash发送消息,flash的所有消息就会传递到一个列表当中,在模板中通过get_flashed_messages()函数可以获取所有列表中的闪现消息,我们通过此函数获取到闪现列表,然后进行遍历,就可以把所有flash消息展示出来。

# start.py
from flask import Flask, render_template, request, flash

app = Flask(__name__)

app.config.from_object('setting')


@app.route('/')
def index():
    username = request.args.get('username')
    passwd = request.args.get('passwd')
    if username == 'xiaoming' and passwd == '111111':
        flash('登录成功!')
    else:
        flash('用户名或密码错误!')
    return render_template('index.html')


if __name__ == '__main__':
    app.run(port=8761)
<!--index.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% for message in get_flashed_messages() %}
        <h3>{{ message }}</h3>
    {% endfor %}
</body>
</html>

启动服务验证一下是否能显示flash闪现消息。

Flask---Jinja2模板引擎 文章目录什么是Jinja2模板引擎?Jinja2语法Flask模板引擎Jinja2案例(代码) 什么是Jinja2模板引擎? 官方网址: http://docs.jinkan.org/docs/jinja2/ Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全: python的Web开发中... 阅读详情

相关推荐

【没有网络,安装python包】如何从 PyPI 下载并安装 Plotly 的离线包

在某些情况下,您可能需要在没有互联网连接的环境中安装 Python 包,例如在飞机上、在某些受限制的网络环境中或在需要离线安装的场景下。以下是如何在 PyPI(Python Package Index)下载 Plotly 包并进行离线安装的详细步骤。

赖德发的博客 1105

pythonista模板_使用 jinja2 渲染 HTML 模板

前言首先,如果一个正常的flask带路由的接口,我们是不需要关心上下文对象的,Flask做了很多“魔术”的方法,当一个Flask应用接收到一个请求的时候,它会在将逻辑委托给你的视图函数之前,创建好一个上下文对象。当我们返回的时候调用render_template(template, **context),就可以正常的渲染界面返回,在这个函数中,如果看一下源码就会发现,返回渲染之前,会创建一个ctx...

weixin_39867509的博客 474

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 540

Flask JInja2

Jinja2 在动态Web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成。当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的方式来在HTML代码中插入变量,这时我们需要使用模板引擎(template engine)。借助模板引擎,我们可以在HTML文件中使用特殊的语法来标记出变量,这类包含固定内容和动态部分的可重用文件称为模板(templ...

Aoki的博客 804

ADS负载牵引仿真避坑指南:从零开始搞定Loadpull模板设置

本文是一份针对ADS负载牵引仿真的深度避坑指南,详细解析了Loadpull模板从初始化配置到结果解读的全过程。文章重点阐述了如何根据设计目标灵活设置扫描圆、采样点等关键参数,以解决仿真不收敛、结果不完整等常见问题,并指导读者在功率与效率之间做出理性权衡,最终提取出用于匹配网络设计的最优负载阻抗。

weixin_29234423的博客 598

5分钟搞定CST周期性结构仿真:共面波导色散曲线快速生成技巧

本文提供了一套在CST Studio Suite中快速仿真周期性结构并生成色散曲线的标准化流程。针对共面波导设计,重点解析了周期性边界条件的核心设置、本征模求解器(JDM算法)的优化技巧,以及通过参数扫描与后处理模板实现自动化,旨在帮助射频与微波工程师在5分钟内高效完成关键性能验证。

blue的专栏 1250

Python(Web时代)——jinja2模板

Jinja2是Flask框架默认支持的模板引擎,是python的web项目中被广泛应用的一种模板引擎,jinja2的作者与Flask是同一个人。有些时候需要对要在模板中的变量值做一些特殊处理,比如首字母大写,去掉前后空格、字符串拼接等等,这时就可以使用过滤器。当遇到现有的过滤无法满足我们的需求时,这时就需要我们自定义一个过滤器了。通过 | 来使用过滤器,与Linux中的管道类似。非常灵活,提供了控制结构、表达式与继承等。控制结构(逻辑代码) {% %}变量取值 {{ }}

qq_25702235的博客 5001

【异常】Hermes Agent调用z.ai接口失败(余额不足)API call failed (attempt 1/3): RateLimitError [HTTP 429]

补充说明:同步尝试解析接口对应网页时,出现“网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试”提示,该提示不影响核心报错排查,仅作为辅助信息。

奶爸的编程之路,也就一周冷个三天 1199

jinja2模板

jinja2模板 ​ 视图函数的主要作用是,处理业务逻辑,返回响应内容 ​ flask是使用jinja2这个模板引擎来渲染模板 使用模板的好处 视图函数只负责业务逻辑和数据处理 模板取到视图函数的数据结果进行展示 代码结构清晰,耦合度低 1、jinja2模板介绍 模板传参 再使用render_template渲染模板的时候,可以传递关键字参数,以后直接在模板中使用即可 如果参数过多,可以将所有的参数放到一个字典或列表中。将字典打散成关键字参数可以在参数前面加** from flask impor

qq_42385761的博客 2225

【Dify】知识库智能检索应用

本文介绍了一个基于大语言模型的知识库检索系统,实现从自然语言提问到智能回答的自动化流程。该系统通过知识检索节点定位相关信息,利用重排序模型优化结果,最后由大语言模型生成自然语言答案。核心模型包括InternLM2-7B和BCE重排序模型。工作流程包含输入问题、检索重排序、智能生成和答案输出四个阶段,适用于企业知识管理、客户支持、教育培训等多种场景,能显著提升信息检索效率和准确性。文章还提供了相关开发文档链接,涵盖AIGC工具平台搭建、常见问题解决等内容。

Mr数据杨 1003

vue2/3 - 详细实现内网使用离线百度地图功能,百度地图如何离线加载详细教程(内网部署及使用),在vue中无需网络离线使用百度地图相关功能,提供最新完整的瓦片资源下载及相关工具(示例代码,一键复制

vue,vue2,vue3,百度地图,离线使用百度地图,百度地图瓦片官方下载,vue内网使用百度地图离线无网络,断网情况下使用百度地图,vue离线百度地图教程,如何实现内网部署百度地图,无需联网离线使用,vue+ts实现离线百度地图 内网离线百度地图,如何在百度地图Vue项目中下载离线地图,百度离线地图加载不出来,百度地图离线使用不显示怎么办,怎么解决vue内网使用离线百度地图加载失败问题,vue实现离线地图+百度瓦片,vue引入百度离线地图,vue项目如何使用离线百度地图和自定义地图样式,百度离线地图的下

✅ 精选推荐文章 1万+

06_Flask之jinja2模板引擎_传参_控制语句_模板继承

文章目录1 什么是模板引擎?2 为什么要有模板引擎?3 在`Flask`如何使用模板引擎?3.1 模板引擎返回对比视图函数直接返回html代码3.2 修改默认模板引擎寻找路径3.3 模板引擎传参实例1 k=v:实例2 dict{k1:v1,k2:v2...}实例3 dict{k1:v1 ... dict{km:vm} }:关键词:3.4 模板中使用`url_for()`实例:关键词:3.5 jinja2中控制语句1 jinja2中逻辑语句/if语句实例:2 jinja2中循环语句/for循环2.1 列表循

coderge's 优快云 Blog. 832

SecOC专题之新鲜值TripCnt

本系列为一步步拆解新鲜值的分发及管理而撰写文章属于原创,根据自身开发经验及理解撰写,若有错误请指出Trip Counter是新鲜值中变化最慢的一个part,并且自增到最大值时,会从头开始翻转计数。Trip Counter需要收发双方都保存,由于其变化较慢,所以不会经常进行同步该值。这就要求开发过程中保证每次对该值的读写必须要正确。

qq_22969363的博客 1156

前端(Jinja2)

1. 什么是Jinja2模板引擎 python的Web开发中, 业务逻辑(实质就是视图函数的内容)和页面逻辑(html文件)分开的, 使得代码的可读性增强, 代码容易理解和维护; 模板渲染: 在html文件中,通过动态赋值,将重新翻译好的html文件(模板引擎生效) 返回给用户的过程。 2. 语法 2.1 Jinja2变量显示语法: {{ 变量名 }} # 完整的过滤器查看位置: http:...

qq_43281189的博客 8923

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Flask Web 框架中 Jinja2 模板引擎的理解

Flask Web 系列教程:Jinja2 模板引擎详解 本视频是 Flask Web 系列教程的第六部分,将深入讲解 Jinja2 模板引擎。 回顾前几部分内容: 已完成五个教程,涵盖了 Flask 基础知识、HTML 整合、HTTP 方法(GET、POST)等内容。 使用 Jinja2 模板引擎可以将 HTML 与数据源整合,从而动态渲染页面。 例如,在 result.html 中,可以使用...

krishnaik06的博客 348

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Python Flask 编程 | 连载 06 - Jinja2 语法

上下文处理器 context_processor 可以在模板上下文中添加新的内容,添加的内容可以是变量,也可以是函数。

pythonhy的博客 2114

VC中sqlite的使用

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

Flask-06 flask模板Jinja2

flask模板Jinja2Flask使用的是Jinja2模板引擎, Jinja2是模仿Django的模板引擎而开发的Jinja2优点速度快,广泛应用HTML设计与后端分离非常灵活,快速和安全可以进行控制,继承等高级功能结构标签block主要用于在基础模板中定义 模块来在子页面中进行继承和扩展, 填充避免的重复书写相同的结构, 是代码更加简洁 {% extends 'xxx.html' %}...

zhang_Ming_lu的博客 4万+

Flask框架(二)模板引擎JinJa2

文章目录一.什么是JinJa2模板二.JinJa2语法1.Jinja2变量显示语法2.Jinja2变量内置过滤器3.如何自定义过滤器4.for循环5.if语句三.宏操作1.如何定义宏?2.如何调用宏?3.include包含操作4.模板的继承 一.什么是JinJa2模板 Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可...

cainiaoayue的博客 295

Flask之Jinja2模板与Flask-WTF

01-文档 官方文档:http://docs.jinkan.org/docs/jinja2/ 02-基本语义 Jinja2做构成的模板文件中,文本内容大致可以分成几个种类。比如特殊文本(不进行转义,比如HTML,XML格式的文本)、{{ }}表示的变量或者宏调用、{% %}表示逻辑控制,{# #}表示注释,其中内容不被模板引擎转义。 03-渲染模板 默认情况下,Flask在项目目录中的te...

子钦加油的博客 501

【Flask】Jinja2模板之过滤器

一、过滤器定义 实质上就是一个转换函数。变量可以通过“过滤器”进行修改,过滤器可以理解为是jinja2里面的内置函数和字符串处理函数。 常用的过滤器有: 1、字符串过滤器 视图函数 from flask import Flask, render_template # todo 初始化Flask项目的服务 app = Flask(__name__) student = {'name': 'kobe', 'age': 14, 'gender': '男'} @app.route('/str') def t

python全栈 1806

flask(二)之Jinja2模板与Flask-WTF

01-文档 官方文档:http://docs.jinkan.org/docs/jinja2/ 02-基本语义 Jinja2做构成的模板文件中,文本内容大致可以分成几个种类。比如特殊文本(不进行转义,比如HTML,XML格式的文本)、{{ }}表示的变量或者宏调用、{% %}表示逻辑控制,{# #}表示注释,其中内容不被模板引擎转义。 03-渲染模板 默认情况下,Flas...

weixin_30716725的博客 226

python进阶jinja2模版引擎

文章目录什么是Jinja2模板引擎?jinia2的语法 什么是Jinja2模板引擎? 在Python中,什么是模版?就是在一个静态HTML加入一些类似变量的标签,然后引擎在渲染这个HTML时候会动态的把变量填入内容,生成一个最终的HTML。 什么是模版引擎?其实就是一种能解析类似Python语言的标记语言的解释器。 比如我们在HTML模版中输入一个< p>{{ post.title }...

C_teacher的博客 1024

基于Jinja2模板引擎的Python自动化报告生成器实战指南

自动化报告生成是现代数据处理与信息整合中的一项关键技术,其核心原理在于将动态数据与静态模板分离,通过渲染引擎实现内容的自动化填充与格式化。这项技术的核心价值在于将重复、繁琐的手工文档编制工作转化为高效、准确、可复用的自动化流程,极大地提升了工作效率并减少了人为错误。在实际应用中,它广泛适用于生成各类结构化文档,如运营日报、项目周报、系统监控报告等。本文以构建一个“科技日报”生成器为具体场景,深入探讨了如何运用Python生态中的Jinja2模板引擎,结合模块化设计思想,实现从数据获取、模板渲染到文件输出的完

weixin_33749131的博客 487

Flask中的Response/Request/session/jinja2/装饰器

一. Response 1.Flask中的HTTPResponse Content-Type: text/html; charset=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') # app中的路由装饰器 def home(): """ 视图函数 :return: 响应(5种) """ ret...

weixin_30562507的博客 400

02_Flask是什么?

通过本节课程的学习,大家会对Flask有一个初步的认识。在进行Python Web开发时,我们为什么优先选择学习Flask?Flask有哪些核心库?Flask有哪些特点?学完这节课,所有的问题都会为你解答。跟我学编程,免费领取配套学习资料。

在科技的浪潮中,我们寻找着创新的火种,在代码的海洋里,我们编织着智慧的网。腾飞开源,就是这样一个由技术精英汇聚而成的博客平台,我们致力于分享在Java、Python、IoT和人工智能等领域的最新研究成果和实战经验。 在腾飞开源的博客上,你会看到紧跟技术前 1069

pythondjangoddos_Flask中的Response/Request/session/jinja2/装饰器

一. Response1.Flask中的HTTPResponseContent-Type: text/html; charset=utf-8from flask import Flaskapp = Flask(__name__)@app.route('/') # app中的路由装饰器def home():"""视图函数:return: 响应(5种)"""return 'Hello Flask' #...

weixin_35910783的博客 327
上一篇: Flask05——请求钩子和异常捕获
下一篇: Flask07——数据库操作-增删改查作者
零寂前端
博客等级 码龄11年 59粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值