您好,登錄后才能下訂單哦!
本文實例講述了Django框架基礎模板標簽與filter使用方法。分享給大家供大家參考,具體如下:
一、基本的模板語言
1、變量
{{ }}
1.1、進入Django shell 環境
python manage.py shell
1.2、Context、Template 模塊的基本使用
from django.template import Context,Template t = Template('My name id {{ name }}') c = Context({'name':'Stephane'}) t.render(c)
1.3、views.py 文件
def index(request): list = ['小明','小花','小包'] dict = {'age':14,'user':'小高'} return render(request,'index.html',{'list':list,'dict':dict})
1.4、index.html 文件
<div> <!-- 獲得列表第一個名字:“小明” --> {{ list.0 }} <!-- 獲得字典中的 age 項 --> {{ dict.age }} <!-- 過濾 flite 的使用 --> {{ dict.age | 過濾條件 }} </div>
2、邏輯語法
{% %}
2.1、循環與判斷
{% for ... in ... %}
{% endfor %}
{% if %}
{% else %}
{% endif %}
{% url '網頁路徑' %} 指定路徑
<form>
{% csrf_token %} 去除跨域csrf驗證
</form>
{% load 標簽庫 %} 加載任意標簽庫
3、模板中的邏輯操作:
3.1、 ==, !=, >=, <=, >, < 這些比較都可以在模板中使用(注意:比較符號前后必須有至少一個空格!)
{% if var >= 90 %} 成績優秀,學得不錯 {% elif var >= 80 %} 成績良好 {% elif var >= 70 %} 成績一般 {% elif var >= 60 %} 需要努力 {% else %} 不及格啊,大哥! {% endif %}
3.2、and, or, not, in, not in , is , is not 也可以在模板中使用
{% if num <= 100 and num >= 0 %} num在0到100之間 {% else %} 數值不在范圍之內! {% endif %}
4、注釋
{# value #}
二、Django的模板方法
1、filters 內置語法
基本語法:{{ value|filter_name:參數 }} value:變量名 ; filter_name:Django內置或者自定義filter方法; 參數:處理的值
3.1、{{ value|default:參數 }} 如果value沒有傳值,替換default設置的參數。
3.2、{{ value|default_if_none:參數 }} 如果value為none,替換default設置的參數。
3.2、{{ value|length }} 顯示value的長度
3.3、{{ value|filesizeformat }} 將value格式化一個可以識別的大小(例子:1.5k,5M等)
3.4、{{ value|slice:" 2:1" }} 對value進行切片(支持負數)
3.5、{{ value|date:"Y:m:d H:i:s"}} 格式話時間
3.6、{{ value|safe }} 直接解析為可執行的html代碼
3.7、{{ value|truncatechars:30 }} 對value進行截取,只顯示30個字符,用“...”代替多余的部分
3.8、{{ value|add:10 }} 做加法運算
3.9、{{ value|capfirst }} 首字母大寫
3.9、{{ value|cut:'a' }} 從字符串中移除指定的字符
2、自定義filter
2.1、在APP項目中新建 templatetags 模塊 ,在.py文件中編寫自定義模塊
# 自定義filter的基本語法 form Django import template # 引用Django中的模塊 register = template.Library() # 實例化一個模板對象 # 將自定義的 filter 注冊到程序中 @register.filter ''' @register.filter(name = 'fleter_name') 這個裝飾器把自定義的filter注冊到程序中, 讓其可以使用自定義的 filter 方法; reg是 ‘|' 前面的變量 reg2是方法后面的參數。 ''' @register.filter(name = 'add') def add(reg): return '{}'.format(reg) @register.filter(name = 'add_str') def add_str(reg,reg2): return '{} {}'.format(reg,reg2)
2.2、html文件的使用方法
<!-- 導入自定義的filter方法 --> {% load filter %} {{ value|add }} {{ value|add_str:'123'}} {% if num|fliter:參數 %} 內容 {% endif %}
出現這個錯誤需要手動重啟python程序
希望本文所述對大家基于Django框架的Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。