zoukankan      html  css  js  c++  java
  • Flask之模板

    模板

    1 基本用法

    flask比django更加接近Python。

    from flask import Flask,render_template
    
    app = Flask(__name__,)
    
    def func(arg):
        return '你好' + arg
    
    @app.route('/md')
    def index():
        nums = [11,222,33]
        return render_template('md.html',nums=nums,f=func)
    
    
    if __name__ == '__main__':
        app.run()
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <h1>头</h1>
            {% block content %} {% endblock %}
        <h1>底</h1>
    </body>
    </html>
    
    <form action="">
        <input type="text">
        <input type="text">
    </form>
    
    {% extends 'layout.html' %}
    
    
    {% block content %}
        <h1>MD</h1>
        {% include 'form.html' %}
        {{ f("汪洋") }}
    {% endblock %}
    

    2 定义全局模板方法

    from flask import Flask,render_template
    
    app = Flask(__name__,)
    
    @app.template_global() #  {{ func("赵海宇") }}
    def func(arg):
        return '海狗子' + arg
    
    @app.template_filter() # {{ "赵海宇"|x1("孙宇") }}
    def x1(arg,name):
        return '海狗子' + arg + name
    
    
    @app.route('/md/hg')
    def index():
        return render_template('md_hg.html')
    
    if __name__ == '__main__':
        app.run()
    

    解析

    1. flask和Django中的模板用法不一样,使用的是jinja2,它的用法更加的接近python语法,并且一些更加强大的功能;
    2. 这个模板语法执行python的函数,可以将函数名传到模板中加括号执行,并且可以传入参数;
    3. 它同样也支持模板的继承;
    4. 可以定义全局应用的模板方法,# @app.template_global()
    5. 可以写自定义过滤器; # @app.template_filter()
    6. 注意:在蓝图中注册时候,应用返回只有本蓝图。
    
  • 相关阅读:
    你的系统需要做系统集成测试么?
    测试驱动 ASP.NET MVC 和构建可测试 ASP.NET MVC 应用程序
    RikMigrations 或 Migrator.NET 进行自动化的数据库升级
    单元测试
    C#反射
    J2EE--Struts2基础开发
    Dynamics CRM 客户端的插件调试
    于快速创建 IEqualityComparer<T> 实例的类 Equality<T>
    ToolBox Analysis & Design
    实现$.fn.extend 和$.extend函数
  • 原文地址:https://www.cnblogs.com/zhufanyu/p/11938051.html
Copyright © 2011-2022 走看看