热门关键字:
jquery > jquery教程 > jquery教程 > Flask框架入门(4)模板

Flask框架入门(4)模板

280
作者:管理员
发布时间:2021/2/2 18:20:47
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=3767
  前面几篇的内容我们还没涉及视图模板的使用,下面我们简单介绍怎么使用,详细的内容可以参考官方的文档获取更多内容。


  官方文档地址:


  目录


  模板使用


  模板继承


  HTML自动转义


  Flask的模板功能是基于Jinja2模板引擎实现的。提供模板可以使用render_template()方法。


  这次我们返回的不再是字符串,而是render_template()方法的返回内容,第一个参数就是模板文件名,第二个参数是模板里面的变量内容,可以有多个变量,它们会在视图渲染的时候按需要显示在页面。


  Flask框架会自动查找templates文件夹里面对应的视图文件。


  如果应用只是一个模块:文件夹的结构会是这样的:


  /application.py


  /templates


  ? /hello.html


  如果是一个包,结构会是这样的:


  /application


  ? /__init__.py


  ? /templates


  ? /hello.html


  下面文章底部会提供一个登陆注册的例子,代码结构是使用蓝图模块化的写法,模板文件我统一放在壳工程的外面,所有模块都共用同一个templates文件夹。


  当然也可以使用模块里面的templates文件夹,只需在每个模块初始化Blueprint实例的时候指定文件夹路径就可以了:


  main_opt = Blueprint('main_opt', __name__, static_folder="", template_folder="")


  蓝图实现模块化会在后面介绍。


  ?


  下面看一下模板文件的写法


  hello.html 内容如下:


  模板里面可以访问request,session和g实例对象,甚至是get_flashed_messages()函数。


  表达式的写法:{{表达式}}


  动态代码块写法:


  {% if name %}


  ? <h1>Hello {{ name }}!</h1>


  {% else %}


  ? <h1>Hello, World!</h1>


  {% endif %}


  如果你要把一个页面通用的内容抽出来,其它页面只要继承它,然后在里面填充不同的内容就可以实现重用。


  例如把页头标题栏跟页尾的内容抽出来单独一个文件base.html


  base.html 相当于一个页面的框架,只需填入内容。需要插入内容的位置使用block标记


  在需要标题栏的页面{% extends 'base.html'%}就可以了,然后填入自己的内容。


  自动转义默认是开启的,如果输入的内容包含一些特殊的代码自动转义很容易造成HTML注入攻击。使用Markup类可以避免自动转义处理。


  下面是一个在返回字符串的转义例子


  页面会输出”Hello Flask”字样,而且”Flask”是斜体的,因为我们加了<em>标签。


  如果不想自动转义可以这样写:


  现在页面只会显示”Hello <em>Flask</em>”




如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:jquery
友荐云推荐