flask-模板使用


  • 模板方法:
    • 模板中的url_for跟后台视图的url_for使用起来基本是一样的,也可以传递参数
      • 使用方式
        • {{ url_for('func') }}
  • 过滤器:
    • 过滤器是通过管道符号  |  进行使用的,例如: {{ name|length }}, 将返回name的长度。过滤器相当于一个函数,把当前的变量传递到过滤器中, 然后根据过滤器自己的判断。再返回相应的值,之后在将结果渲染。
    • 常用的内置过滤器:
      • abs(value) : 返回一个数值的绝对值。

        • -1|abs
      • default(value, default_value, boolean=false) : 如果当前的变量没有值,则使用参数中的值来代替。  name|default('ivy')  -- 如果name不存在,则使用ivy来代替。boolean=false默认是在这个变量为undefined的时候才会使用的default的值。当这个变量又被定义,但是这个变量为Flase(None , False, 及其各种数据类型的空类型)时,会返回相应的值,这时候只要将boolean=True,就会渲染默认的值。
      • or:
        • {{ value1 or value2 }}   和python自带的or一样。
      • escape(value)或e: 转义字符,会将 < 、> 等符号转义成html中的符号.
        • content|escape   或者 content|e
      • safe(value): 关闭自动转义
        • {{ content|safe }}
      • first(value)  返回一个序列的第一个元素。 name|first
      • format(value, *args, **kwargs) : 格式化字符串:
        • {{ "%s" - "%s"|format('hello', 'world') }}
      • last(value): 返回一个序列的最后一个元素
        • name|last
      • length(value)
        • name|length
      • join(value, format_key): 跟python的join一样
      • int(value): 转换为int整型
      • float(value): 转换为float类型
      • lower(value): 转换为小写
      • upper(upper): 转换为大写
      • replace(value, old, new): 字符串替换
      • truncate(value, length=255, killwords=False): 截取length长度的字符串
      • striptags(value): 删除字符串中的所有html标签,如果出现空格,将替换成一个空格
      • trim: 截取字符串前面和后面的空白字符串
      • 更多的过滤器:http://docs.jinkan.org/docs/jinja2/templates.html#builtin-filters
    • 自定义过滤器:

      • 过滤器本身是一个可以在模板中使用的函数,然后对传进来的参数做一定的处理返回给模板
      • 自定义的过滤器需要在flask中注册
      • 过滤器的第一个参数是使用过滤器的模板变量,过滤器的返回结果是过滤器的返回值。
      • 下面实现一个简单的性别转换的过滤器
      •  from flask import Flask, render_template
        
         app = Flask(__name__)
        
         @app.route('/')
        def index():
        context = {
        'sex': 1
        }
        return render_template('index.html', **context) @app.template_filter('sex_trans')
        def sex_trans(value):
        rote = {
        1: 'male',
        0: 'female'
        }
        return rote.get(value) if __name__ == '__main__':
        app.run()
  • 模板标签
    • {% autoescape off %} content  {% endautoescape  %}

      • 将content里面的内容取消转义
    • {%  if  ......   %} do something {% else %}   do  something  {% endid %}
      • 条件判断
    • {% for   sth  in sths %}    do something about  {{  sth }}   {%  endfor  %}
      • for 循环
      • for 循环可以接range函数
      • for 循环中配合使用
        • <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8">
          <title>Title</title>
          </head>
          <body>
          {% for i in range(0,10) %}
          <p>{{ i }} - {{ loop.index }} - {{ loop.first }} - {{ loop.last }} - {{ loop.length }} - {{ loop.nextitem }}</p>
          {% endfor %}
          </body>
          </html>

        • loop.index:  返回该次for循环的次数,默认从1开始排序
        • loop.index0: 制定for循环从第几次开始排序,返回当次的次数
        • loop.first: 判断是否为第一次for循环,返回bool值
        • loop.last:
        • loop.length:返回for循环的总次数
        • loop.nextitem:返回for循环的下次的值
  • 加载静态文件
    • flask加载静态文件采用url_for函数

      • {{   url_for('static', filename='静态文件的路径')      }}
      • url_for的第一个参数是加载静态文件的文件夹的名字,默认为static, filename为你的静态资源相对static文件的相对路径。

    

flask-模板使用的更多相关文章

  1. flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)

    flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...

  2. flask模板,路由,消息提示,异常处理

    1.flask的路由与反向路由 from flask import Flask, request, url_for app = Flask(__name__) @app.route('/') def ...

  3. Flask - 模板语言jinja2 和render_template高级用法

    目录 Flask - 模板语言jinja2 和render_template高级用法 一. 字典传递至前端 二. 列表传入前端Jinja2 模板的操作: 三. 大字典传入前端 Jinja2 模板 四. ...

  4. Flask模板渲染

    目录 Flask模板渲染 Jinja2模板引擎简介 模板 Jinja2 模板变量 变量 控制结构 宏,类似Python代码中的函数 模板继承 包含(Include) 过滤器 链式调用 常见内建过滤器 ...

  5. Flask模板注入

    Flask模板注入 Flask模板注入漏洞属于经典的SSTI(服务器模板注入漏洞). Flask案例 一个简单的Flask应用案例: from flask import Flask,render_te ...

  6. 实验2、Flask模板、表单、视图和重定向示例

    实验内容 1. 实验内容 表单功能与页面跳转功 能是Web应用程序的基础功能,学习并使用他们能够更好的完善应用程序的功能.Flask使用了名为Jinja2的模板引擎,该引擎根据用户的交互级别显示应用程 ...

  7. Flask 模板语言

    Flask使用的是Jinja2模板引擎 举个例子: from flask import Flask, render_template app = Flask(__name__) @app.route( ...

  8. Flask模板_学习笔记

    代码尽在我的github上面:https://github.com/521xueweihan 概述:    在Flask中,Jinja2默认配置如下:        A.扩展名为.html,.htm, ...

  9. ThinkPhp模板转Flask模板

    Template Converter 网上的PHP资源很多,项目要用Python,所以想起做一个模板转换器,从ThinkPhp转成Flask的Jinja模板. 直接指定两个目录,将目录下的模板文件转换 ...

  10. flask模板

    做为python web开发领域的一员,flask跟Django在很多地方用法以都是相似的,比如flask的模板 模板就是服务器端的页面,在模板中可以使用服务端的语法进行输出控制 1.模板的工作原理 ...

随机推荐

  1. vue-autoui自匹配webapi的UI控件

    vue-autoui 是一款基于vue和element扩展的一个自动化UI控件,它主要提供两个控件封装分别是auto-form和auto-grid; 通过这两个控件可以完成大多数的信息输入和查询输出的 ...

  2. Codeforces Round #378 (Div. 2)F

    题目:一个带权连通无向图,给第i条边权值减1需要花费ci元,你一共有S元,求最小生成树. 容易得出钱全部花在一条边上是最优的. 我们先做一遍最小生成树. 然后我们枚举减哪一条边. 如果这条边是树上的, ...

  3. Git 的简单使用及ssh配置问题-赖大大

    软件安装 第一步当然是安装啦. 官方网址:https://git-scm.com/ 具体操作 在你本地电脑的文件夹里右击鼠标,选Git base here 显然,你是在本地仓库的master分支上,通 ...

  4. 【面试必备】用了那么多次 ping,是时候知道 ping 是如何工作的了!

    每日一句英语学习,每天进步一点点: 前言 在日常生活或工作中,我们在判断与对方网络是否畅通,使用的最多的莫过于 ping 命令了. “那你知道 ping 是如何工作的吗?” —— 来自小林的灵魂拷问 ...

  5. RTSP协议进行视频取流的方法、注意点及python实现

    在视频应用中,我们一般都需要基于摄像头或录像机的视频流进行二次开发,那么就涉及到如何将视频流取出来. 在摄像机安装好之后,一般是通过局域网与本地的服务器进行连接,要取录像机的视频流就要在局域网范围内进 ...

  6. Angularjs优点

    数据双向绑定,前后台的更改都可以随时生效, 提供mvc开发模式模式,剥离前端各部分代码,使代码便于维护管理. 简化了你写DOM操作

  7. Redis源码分析: String(SDS)容量调整分析

    整体思路: 1 惰性缩容.不释放空间,留给到期释放等机制释放. 2 加倍扩容.在需要空间达1M之前按新空间两倍分配空间,否则按新空间大小+1M分配.注意,1M=1024*1024*Char.Char可 ...

  8. MySQL----DDL(操作数据库,表)

    1. 操作数据库:CRUD 1. C(Create):创建 * 创建数据库: * create database 数据库名称; * 创建数据库,判断不存在,再创建: * create database ...

  9. Python 趣题

    如何优雅判断list为空 list_temp = [] if list_temp: # 存在值即为真 else: # list_temp是空的 在Python中,False,0,'',[],{},() ...

  10. 强化学习之六:Deep Q-Network and Beyond

    本文是对Arthur Juliani在Medium平台发布的强化学习系列教程的个人中文翻译,该翻译是基于个人分享知识的目的进行的,欢迎交流!(This article is my personal t ...