日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web框架——Flask系列之Jinja2模板引擎(二)

發布時間:2024/7/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web框架——Flask系列之Jinja2模板引擎(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Jinja2模板引擎簡介

一、Jinja2模板概述

用來展示數據的html頁面,這個過程也通常稱為渲染,屬于Jinja2的功能 使用模板的好處:

  • 視圖函數只負責業務邏輯和數據處理(業務邏輯方面)
  • 而模板則取到視圖函數的數據結果進行展示(視圖展示方面)
  • 代碼結構清晰,耦合度低
  • 二、Jinja2特點

    Jinja2:是 Python 下一個被廣泛應用的模板引擎,是由Python實現的模板語言,他的設計思想來源于 Django 的模板引擎,并擴展了其語法和一系列強大的功能,其是Flask內置的模板語言。

    模板語言:是一種被設計來自動生成文檔的簡單文本格式,在模板語言中,一般都會把一些變量傳給模板,替換模板的特定位置上預先定義好的占位變量名
    使用render_template函數封裝模板引擎

    三、Jinja2模板的使用

    3.1 Jinja2模板語法:

  • 獲取變量值:
  • <h1>整數:{ {number} }</h1><h1>元祖:{ {tuple[0]} }</h1><h1>列表:{ { list[0] } }</h1><h1>字典:{ { dict['key'] } }</h1>
  • 分支語句if
    { % if 條件 % }
    語句1
    { % else % }
    語句2
    { % endif % }

  • for循環
    {% for 變量 in 容器 %}
    語句
    {% endfor%}

  • 注釋
    {# 注釋內容 #}

  • 3.2代碼展示:

    使用函數: render_template(‘模板文件名’,key=value)
    將數據攜帶到,文件中進行展示
    創建文件demo01.py,代碼如下:

    from flask import Flask,render_template app = Flask(__name__) #默認省略了三個參數,static_url_path, static_folder, template_folders@app.route('/') def hello_world():#定義數據,整數,字符串,元祖,列表,字典num = 10str = "hello"tuple = (1,2,3,4)list = [5,6,7,8]dict = {"name":"張三","age":13}return render_template('file01.html',my_num=num,my_str=str,my_tuple=tuple,my_list=list,my_dict=dict)if __name__ == '__main__':app.run(debug=True)

    在templates文件夾下,創建文件file01.html文件,代碼如下:

    <h2>1.獲取各種變量的值</h2><h3>整數: {{ my_num + 20}}</h3><h3>字符串: {{ my_str + " python" }}</h3><h3>元組: {{ my_tuple }}, 分開獲取:{{ my_tuple[0] }}, {{ my_tuple[1] }}</h3><h3>列表: {{ my_list }}, 分開獲取:{{ my_list[0] }}, {{ my_list[1] }}</h3><h3>字典: {{ my_dict }},分開獲取:{{ my_dict.name }}, {{ my_dict[age] }}</h3><h2>2.遍歷元祖中所有的元素</h2>{% for item in my_tuple %}<li>{{ item }}</li>{% endfor %}<h2>3.取出列表中所有偶數</h2>{% for item in my_list %}{% if item %2 == 0 %}{{ item }}{% endif %}{% endfor %}<h2>4.遍歷字典內容</h2>{% for key in my_dict %}{# 如果直接是mydict.key ,那么這個key是一個字符串, 如果是 mydict[key], 那么key當成變量 #}<li>{{ key }} = {{ my_dict[key] }}</li>{% endfor %}

    11_templates.py文件:

    from flask import Flask,render_templateapp = Flask(__name__)@app.route("/index",methods=["GET","POST"]) def index():data = {"name":"python","age" : 18}# return render_template("index.html",name="python",age=18)# **data將字典進行解析return render_template("index.html", **data)if __name__ == '__main__':app.run(debug=True)

    index.html文件:

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><p>naem = {{name}}</p><p>age = {{age}}</p> </body> </html>

    from flask import Flask,render_template app = Flask(__name__)@app.route("/index",methods=["GET","POST"]) def index():data = {"name":"python","age" : 18,"my_dict": {"city":"sz"},"my_list": [1,2,3,4,5],"my_int": 0}# return render_template("index.html",name="python",age=18)# **data將字典進行解析return render_template("index.html", **data)if __name__ == '__main__':app.run(debug=True) <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title> </head> <body><p>name = {{name}}</p><p>age = {{age}}</p><p>my_dict:city = {{my_dict["city"]}}</p><p>my_dict:city = {{my_dict.city}}</p><p>my_list[my_int]:{{my_list[my_int]}}</p><p>my_list[0] + my_list[1] = {{my_list[0] + my_list[1]}}</p><p>{{"hello" + " python!" }}</p></body> </html>

    3.3 擴展:

    在一個 for 循環塊中你可以訪問這些特殊的變量:

    總結

    以上是生活随笔為你收集整理的Web框架——Flask系列之Jinja2模板引擎(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。