《黑马程序员-6节课入门Flask框架web开发视频》2

本文介绍了Flask框架中如何使用Jinja2模板引擎,阐述了视图函数处理参数的方法,包括动态路由参数和数据类型的限定。同时,详细讲解了如何返回网页模板,以及如何在模板中填充数据,通过键值对将变量与HTML文件中的内容关联起来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同一视图函数传入不同的参数

<>定义路由的动态参数

@han.route("/name/<describe>", methods=["GET", "POST"])
def first_web(describe):
    return "welcome, han!,now {} ".format(describe)

如果没有对参数的数据类型做限定,默认参数是字符串

@han.route("/name/<int:describe>", methods=["GET", "POST"])
def first_web(describe):
    return "welcome, han!,now {} ".format(describe)

使用int:限定,则只有整数可以作为参数传入。

Jinja2模板引擎

在简单的请求中,视图函数主要的作用是生成请求响应。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,会使用模板来承担视图函数返回响应内容的任务

模板是一个包含响应文本的文件,其中的占位符(变量)表示动态部分,告诉模板引擎,其具体的值需要从使用的数据中获取。

使用真实值替换变量,再返回最终得到的字符串,这个过程称为渲染

Flask是使用Jinja2这个模板引擎来渲染模板。

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档

模板语言是一种被设计来自动生成文档的简单文本格式。在模板语言中,一般都会把一些变量传给模板,替换模板特定位置上预先定义好的站位变量名。Jinja2是一个被广泛应用的模板引擎,是由python实现的模板语言,是Flask内置的模板语言。

如何返回一个网页(模板)?

返回的网页一般都是一个HTML文件,所有首先要新建一个HTML文件,作为网站的首页。然后在主程序中import函数render_template来对HTML进行渲染,render_template函数的第一个参数模板文件名,后面的参数都是键值对,表示模板中变量对应的真实值。

# *-*coding:utf-8*-*
from flask import Flask
from flask import render_template

han = Flask(__name__)

@han.route("/")
def first_web():
    return render_template("first_HTML.html")

if __name__ == '__main__':
    han.run()

如何给模板填充数据?

其实很简单,用键值对传入参数,然后在HTML文件中用两个花括号来使用这个变量。

在Jinja2中,使用{# #}进行注释,快捷键Ctrl + /
使用{{ }} 来表示变量名,这种语法叫做变量代码块

@han.route("/")
def first_web():
    url_str = "www.txy.com"
    return render_template("first_HTML.html", url_str=url_str)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

这是一个模板<br>
这是一个标签<br>
{{ url_str }}<br>

</body>
</html>

列表、字典都可以传入并使用。

@han.route("/")
def first_web():
    url_str = "www.txy.com"
    my_list = [1, 2, 3, 4]
    my_dict = {"name": "han", "age": 19}
    return render_template("first_HTML.html", url_str=url_str,
                           my_list=my_list, my_dict=my_dict)
<body>
这是一个模板<br>
这是一个标签<br>
{{ url_str }}<br>
{# 列表和字典的取值#}
{{ my_list }}<br>
{{ my_list.2 }}<br>
{{ my_list[2] }}<br>
{{ my_dict }}<br>
{{ my_dict.age }}<br>
{{ my_dict["age"] }}<br>
</body>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值