zoukankan      html  css  js  c++  java
  • Flask框架-模板

    ---恢复内容开始---

    概念:

    • 模板是指包含响应文本的文件,不特指html格式的文件

    基础语法:

    • 变量:{{变量}} 接收视图函数返回的数据
    • 语句:{% if 表达式%} {%endfif%}   {%for v in key%} {{v}} {{%endfor%}} 

    过滤器:

    • 本质是函数,对数据进行计算或格式化输出
    • 语法:{{变量 | 过滤器名称}}
    • 过滤器支持链式调用,从前到后依次执行
    • (重要)自定义过滤器:两种形式
      •   定义函数:app.add_tempalte_filte(函数名称,过滤器名称) ,如果和内置过滤器重名会覆盖内置过滤器
      •   @app_tempalte_filter(过滤器名称)

    模板代码复用:

    • 继承:本质是代码的替换,作用为了实现模板页面固定区域块替换。
      •   相同内容下留下,不同的内容删除(让子模块填充)
      •   灵活运用。
      •   语法:{%extend  父模板%}{% block %}
    • 宏 macro:本质是函数,作用为了实现模板也i按动态的功能代码块。
    • 包含include:本质是复用,只能复用原始HTML字符串,不能复用通过扩展实习那的功能。

    特殊变量和方法:

    • 不仅可以在视图中使用,还可以在模板中使用
    • url_for、config、request、session、g、flash消息闪现

    CSRF:

    • 口述(面试的角度)
    • 实现保护:
      •   本质是在请求的参数中加入混淆字符串;csrf_token。
      •   服务器生成token写入到客户端浏览器的cookie中,如果使用模板在表单域中设置token,服务器会比较cookie和表单域中的token是否一致。
      •     如果是异步的网络请求,ajax请求需要在请求的参数中加入token 。
      •        服务器会比较请求体和cookie中的token是否一致,如果不一致是伪造的请求。
      •    一般只会验证put、post、delete,不会验证get请求;get请求参数长度都是有限制的(根据浏览器的品牌和版本决定),post放在请求体中,原则上没有限制。
  • 相关阅读:
    线段树区间最大子段和
    NTT数论变换
    cdq分治·三维偏序问题
    线段树区间开方
    怎么联系$zcy$呢?
    题解 CF375D 【Tree and Queries】
    点分治模板
    Good Bye 2018题解
    Hello 2019题解
    Codeforces Round #525 (Div. 2)题解
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/9439932.html
Copyright © 2011-2022 走看看