flask二

匿名 (未验证) 提交于 2019-12-02 22:11:45
jinja2模板规范         在当前项目中创建一个文件为templates的文件夹,将其设置为模板文件夹,新建的html为模板页面,         在视图函数中使用render_template(".html的文件", my_list=mylist),my_list作为在模板页面使用的的变量 {{ my_list}}                  过滤器 符号 "|" 管道左边作为输入传一个变量到管道右边进行输出             safe 对字符串的html标签的代码进行解析,并以html显示在当前文件             reverse    翻转             upper      大写             lower      小写等                      自定义过滤器(本身相当于一个函数)             @app.template_filter("valreverse")     #将其添加到过滤器组中               def add_after(value):                 value += "Hello world"                 result = "¥" + value + "&&"                 return result                              模板中的for和if             {% for ret in result %}                 {% if loop.index == 1 %}                 <li style="background-color: red">{{ ret.data }}</li>                 alert({{ ret.data }})                 {% elif loop.index == 2 %}                 <li style="background-color: green">{{ ret.data }}</li>                  {% elif loop.index == 3 %}                 <li style="background-color: fuchsia">{{ ret.data }}</li>                  {% else %}                 <li style="background-color: cyan">{{ ret.data }}</li>                  {% endif  %}             {% endfor %}              模板代码的复用             宏                 {% macro func_macro() %}                     // 这里填想要封装的html代码                 {%endmacro %}                                  {% import html模板 %} 导入到其他模块中使用           该模板中含有func_macro函数             继承                 导入模板文件          // 继承基类中的html代码                 {%  "extends base_index_detail.html"  %}                                      // 以下代码是进行挖坑和填坑的操作                 {%  block titleBloock %}                     // 自己独有的代码块                 {%  endblock %}                              包含                 include()                 ignore missing   // 忽略错误的                          模板中特有的变量和函数             在py文件中和模板文件中都可以直接拿来使用,不需要传参             request              session             g             config             url_for()             get_flashed_messages() 与 flash搭配使用              代码如下                           @app.route("/login")             def login():                 g.name = "xiaoming"                 session["username"] = "zhangsan"                 flash("哈哈哈")                 flash("嘻嘻嘻")                 flash("呵呵呵")                 return render_template("demo_unique.html")                          html模板中的内容为                 config:                 {{ config.DEBUG }} <br>                 session:                 {{ session["username"] }}<br>                 request:                 {{ request.url }}<br>                 g变量:                 {{ g.name }} <br>                  两个函数为:                 <a href="{{ url_for('index') }}">回到首页</a><br/>                 flash结果为:                 {% for data in get_flashed_messages() %}                 {{ data }}                 {% endfor %}                                   flask_wtf表单             pip install  flask_wtf                          原生的form表单和用类生成的对象,再用对象去创建这个表单             Web 表单是 Web 应用程序的基本功能             它是HTML页面中负责数据采集的部件,表单有三个部分组成:表单标签、表单域、表单按钮,             表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器                                                CSRF 跨站请求伪造             CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造                          CSRF攻击                 CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求                                  包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......                 造成的问题:个人隐私泄露以及财产安全                              开启CSRF验证                 app.config['WTF_CSRF_ENABLED'] = True                              防止CSRF攻击                 在客户端向后端请求界面数据的时候,后端会往响应中的 cookie 中设置 csrf_token 的值在 Form 表单中添加一个隐藏的的字段,值也是 csrf_token,                 在用户点击提交的时候,会带上这两个值向后台发起请求                 后端接受到请求,以会以下几件事件:                 从 cookie中取出 csrf_token从表单数据中取出来隐藏的 csrf_token 的值进行对比                 如果比较之后两值一样,那么代表是正常的请求,如果没取到或者比较不一样,代表不是正常                 的请求,不执行下一步操作

文章来源: flask二
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!