搜索
您的当前位置:首页正文

flask什么是模板

2024-08-01 来源:育乐教育网

模板-Templates

什么是模板

模板是一个包含响应文本的文件(通常是html文件),该文件中允许包含"占位变量"来表示动态的内容,其具体值在请求中才能知道。"占位变量"最终会被真实的值所替换。模板最终也会被解析成响应的字符串,这一过程称为"渲染"。Flask实际上是使用 Jinja2 强大的模板引擎。

模板的设置

默认情况下,Flask会在程序文件夹中的 templates 子文件夹中寻找模板,需要手动创建 templates 文件夹。

渲染模板

在 视图函数中,通过return render_template()将模板渲染成字符串再响应给客户端

render_template('xxx.html',arg1 = value1,arg2 = value2)
# 参数1:xxx.html,要渲染给客户端的html模板文件
# 参数2 ~ n:要传递给模板动态显示的变量占位符,如果没有动态的变量占位符,则可以省略
# 返回值:字符串

模板语法

变量

变量时一种特殊的占位符,告诉模板引擎该位置的值是从渲染模板时的数据中来获取的。变量类型可以是python中的任意数据类型。

在视图中

@app.route('/')
def index():
    return render_template('xxx.html',name='sf.zh',age=18)
# name和age就是要传递到xxx.html中的变量

在模板中

{{变量名}}
{{params.变量名}}

变量的传递方式

直接传递

# 方式一,直接传递
@app.route('/temp')
def temp():
    res = render_template('temp.html',
                          title = '关于本书',
                          bookName = '《钢铁是咋练成的》',
                          bookAuthor = '奥斯特洛夫斯基',
                          bookPrice = '32.5',
                          bookPlace = '北京大学出版社')
    return res

将变量封装为字典

@app.route('/temp')
def temp():
    bookInfo = {
        'title':'关于本书',
        'bookName':'《钢铁是咋练成的》',
        'booAuthor':'奥斯特洛夫斯基',
        'bookPrice':32.5,
        'bookPlace':'北京大学出版社'
    }
    res = render_template('temp.html',params = bookInfo)
    return res
Top