【Flask专题】10.模板-过滤(PyCharm)

模板-过滤(PyCharm)

在HTML页面设置默认值

当取不到message的值时,显示默认值

<body>
    {
         
  {message|default(No message!)}}
</body>

支持链式操作

{
         
  {message|default(no message!)|title}}

title:标题格式 其他一些字符串过滤器: default(‘****’):默认值 title:标题格式 capitalize:首字母大写 lower:小写 upper:大写 reverse:反转 trim:取空格 format():格式化 safe:转义 {% autoescape False%} 。。。{% endautoescape %}: 开启/关闭自动转义

format()例举

{
         
  { %s有%d本书。|format(张三, 10)}}

safe例举

{
         
  {mes}}<br>
    {
         
  {mes|safe}}

autoescape例举

{% autoescape False %}
        {
         
  {mes}}<br>
        {
         
  {mes1}}
    {% endautoescape %}

数值过滤器例举

abs round:小数点后位数设置

@app.route(/filter)
def use_filter():
    return render_template(index2.html, money=1.2345)
<!-- 取小数点后两位,向下取整-->
    {
         
  {money|round(2,floor)}}

列表的过滤

first last length sort:数值排序 sum join():对列表进行拼接操作

@app.route(/filter)
def use_filter():
    fs = [张三, 李四, 王五, ]
    return render_template(index2.html, fs=fs)
{
         
  {fs}}
    <hr>
    {
         
  {fs|first}} -- {
         
  {fs|last}}
    <hr>
    {
         
  {fs|length}}
    <hr>
    {
         
  {fs|join(--)}}

字典的过滤

keys() values() items()

@app.route(/filter)
def use_filter():
    users = [{
          
   a: 145, b: 255}, {
          
   a: 98, b: 21}, {
          
   a: 12, b: 600}]
    return render_template(index2.html, users=users)
{
         
  {users}}
    <hr>
    <!--对每组字典中键为b的值进行降序排列-->
    {% for user in users|sort(attribute=b, reverse=True) %}
        {
         
  {user}}
    {% endfor %}

对字典类型进行遍历

原始数据:<br>
    {
         
  {users}}
    <hr>
    对字典进行遍历:<br>
    {% for user in users %}
        {% for key,value in user.items() %}
            <p>{
         
  {key}}---{
         
  {value}}</p>
            <hr>
        {% endfor %}
    {% endfor %}
经验分享 程序员 微信小程序 职场和发展