for 循環(huán)的特殊用法
forloop 的用法
說明: forloop
是 for
循環(huán)中固有的一個變量對象刻蚯,該對象中绊含,包含有如 counter
/counter0
等屬性,具體說明如下:
語法 | 說明 |
---|---|
forloop.counter | 索引從1開始算炊汹,該變量得到的是此時循環(huán)變量的下標(biāo) |
forloop.counter0 | 索引從0開始算躬充,該變量得到的是此時循環(huán)變量的下標(biāo) |
forloop.revcounter | 索引從最大長度到1,該變量類似于forloop.counter的逆序 |
forloop.revcounter0 | 索引從最大長度-1到0讨便,該變量類似于forloop.counter0的逆序 |
forloop.first | 當(dāng)遍歷的元素為第一項(xiàng)時為真充甚,該變量是一個bool值 |
forloop.last | 當(dāng)遍歷的元素為最后一項(xiàng)時為真,該變量是一個bool值 |
forloop.parentloop | 用在嵌套的for循環(huán)中霸褒,獲取上一層for循環(huán)的forloop伴找,該變量得到的是上一層的forloop對象 |
所以在 for
循環(huán)體中,不要自定義變量 forloop
for empty 用法
功能: 當(dāng)列表為空時使用
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% empty %}
<li>無數(shù)據(jù)</li>
{% endfor %}
</ul>
if 條件判斷
在 if
條件判斷中废菱,可以支持如下的判斷場景技矮,如: and
/ or
/ not
/ in
/ not in
也支持大小判斷,如: >
/ >=
/ <
/ <=
/ ==
/ !=
獲取頁面內(nèi)的內(nèi)容
如獲取頁面中的 當(dāng)前用戶
/ 當(dāng)前網(wǎng)址
/ 當(dāng)前GET參數(shù)
首先是需要在工程的 settings.py
中添加如下的裝飾器
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR + "/templates",],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request', # 這里是template頁面中能否獲取上述信息的關(guān)鍵
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
然后就是在模版頁面中獲取上述參數(shù)的方法
獲取方法 | 獲取結(jié)果 |
---|---|
{{ request.user }} | 當(dāng)前用戶殊轴,匿名的時候?yàn)椋?AnonymousUser |
{{ request.path }} | 當(dāng)前網(wǎng)址穆役,去除了hostname和port,且不包括參數(shù) |
{{ request.GET.urlencode }} | 當(dāng)前GET參數(shù) |
所以如果要想拼接出當(dāng)前瀏覽器的url內(nèi)容的話梳凛,可以使用如下方法: {{ request.path }}/?{{ request.GET.urlencode }}