当前位置 : 主页 > 编程语言 > 其它开发 >

Flask02 模板templates

来源:互联网 收集:自由互联 发布时间:2022-06-09
什么是模板? 应用程序的主页会有一个欢迎用户的标题、或底部固定信息,由于和业务逻辑关联不大,可编辑为单独的文件【html文件】,存储在应用程序的templates文件夹下。 Flask有两
  • 什么是模板?
    应用程序的主页会有一个欢迎用户的标题、或底部固定信息,由于和业务逻辑关联不大,可编辑为单独的文件【html文件】,存储在应用程序的templates文件夹下。

Flask有两大核心:Werkzeug和Jinja2

  • Werkzeug实现路由、调试和Web服务器网关接口

  • Jinja2实现了模板。

    将模板转换为完整的HTML页面的操作称为渲染。 为了渲染模板,需要从Flask框架中导入一个名为 render_template() 的函数。 该函数需要传入模板文件名和模板参数的变量列表,并返回模板中所有占位符都用实际变量值替换后的字符串结果。
    render_template() 函数调用Flask框架原生依赖的Jinja2模板引擎,用传入的参数中的相应值替换模板的{{...}} 块。

点击查看代码
<!doctype html>
<html>
    <head>
        <title>{{ title }} - Microblog</title>
    </head>
    <body>
        <h1>Hello, {{ user.username }}!</h1>
    </body>
</html>

渲染模板

点击查看代码
from flask import render_template
from app import app

@app.route('/')
@app.route('/index')
def index():
    user = {'username': 'Miguel'}
    return render_template('index.html', title='Home', user=user)

当然,Flask的Jinja2功能强大,还可以支持

  • 条件语句
  • 循环语句
  • 继承

app/templates/base.html

点击查看代码
<!doctype html>
<html>
    <head>
      {% if title %}
      <title>{{ title }} - Microblog</title>
      {% else %}
      <title>Welcome to Microblog</title>
      {% endif %}
    </head>
    <body>
        <div>Microblog: <a href="/index">Home</a></div>
        <hr>
        {% block content %}{% endblock %}
    </body>
</html>

app/templates/index.html

点击查看代码
{% extends "base.html" %}

{% block content %}
    <h1>Hi, {{ user.username }}!</h1>
    {% for post in posts %}
    <div><p>{{ post.author.username }} says: <b>{{ post.body }}</b></p></div>
    {% endfor %}
{% endblock %}

学习地址及源代码:https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-ii-templates

【文章转自荷兰服务器 http://www.558idc.com/helan.html 欢迎留下您的宝贵建议】
上一篇:vue-创建第一个vue项目
下一篇:没有了
网友评论