网站建设资讯

NEWS

网站建设资讯

flask模板指的是什么-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联专注于贵南企业网站建设,响应式网站,商城网站建设。贵南网站建设公司,为贵南等地区提供建站服务。全流程定制网站制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

这篇文章主要介绍flask模板指的是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

所谓模板就是就是模具,模型;我们现实生活中经常碰到这种东西,就比如说厂家要批量生产一种钢化杯子,那么厂家肯定是先建模,设计出一个杯子的模型,并在此基础上做出模具,之后的生产,只需要将冶炼好的金属注入其中即可。我们学习的模板就类似于这种模具,只不过我们这里的是 web 模板。模板的诞生是为了将显示与数据分离,让前端工作人员专注表现设计,后台人员注重业务逻辑,同时简化代码的复杂程度。模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。

渲染模板

所谓渲染模板,其实就是将数据插入到你的模板中,例如:

这是一个 user.html的文件

Hello, {{ name }}!

这是一个视图函数

from flask import Flask,render_template

@app.route('/user/')
def user(name):
    return render_template('user.html',name=name)

flask 提供的 render_template 函数将 Jinja2 模板引擎集成到了程序中。render_template 函数第一个参数是模板的文件名。随后的参数都是键值对,表示模板中变量对应的真实值,注意一下,这个 render_template 查询响应文件是有位置的,默认的是在当前脚本的同级目录的templates目录下,如果不是这个目录下的文件是查询不到的,需另行修改。(如图所示,我的视图函数在 manage 中,而我的响应文件则保存在 templates 中) 

拿上面这个例子来举例,首先在 user.html 文件中有一个变量name,user这个函数的形参中也有一个变量 name 在响应的时候会将 user.html 中的name替换为user函数所接收到的参数,打个比方,如果访问的是’/user/tom’,那么这个时候,user.html 的显示效果就是 Hello,tom!

变量

上面的例子提到了变量,在模板中使用 {{ name }} 结构表示一个变量,它是一种特殊的占位符,告诉模板引擎这个地方要被替换为渲染时传递过来的数据。Jinja2 能识别所有类型的变量,例如列表,字典,对象等,例子见下:

A value from a dirctionary: {{ mydict['key'] }}.

A value from a list: {{ mylist[2] }}.

A value from a list,with a variable index: {{ mylist[myintvar] }}.

A value from an object's method: {{ myobj.somemethod() }}.

还可以使用过滤器修改变量,过滤器名添加在变量名之后,与变量名之间用竖线分隔。如下,为模板以首字母大写形式显示变量 name 的值.

hello, {{ name|capitalize }}

Jinja2的常用过滤器

flask模板指的是什么

safe 过滤器需要注意一下,默认情况下,出于安全考虑,Jinja2 会转义所有的变量。如果需要显示变量中存储的源码时,就可以考虑使用 safe 过滤器了。但需要切记的是,千万不可在不可信的值上使用 safe 过滤器,例如用户在表单输入的文本等。

控制结构

Jinja2提供了多种控制结构,可用来改变模板的渲染流程。语法:{% 语句 %} 具体例子见下: 

条件控制语句:

{% if user %}
    Hello ,{{ user }}!{% else %}
    Hello ,Stranger!{% endif %}

循环控制:

        {% for comment iin comments %}         
  • {{ comment }}
  •     {% endfor %}

以上是flask模板指的是什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道!


网页标题:flask模板指的是什么-创新互联
本文地址:http://njwzjz.com/article/jsddp.html