程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Django模板

編輯:Python

DTL

DTL(django template language)是Django自帶的模板語言。

  • 模板變量
    { { 變量 }} 使用雙大括號包括,注意左右兩邊都有空格
  • 模板標簽
    {% %} 模板標簽包括,寫一些語句。
標簽作用{% if %} {% endif %} {% elif %}if語句{% for %} {% endfor %}循環語句{% url %}地址{% extends xx %}模板繼承標簽,從xx中繼承{% load %}加載相關內容{% static %}靜態資源{% block %} {% endblock %}占位標簽{% csrf_token %}用來防止跨站偽造攻擊{% include %}包含一個HTML頁面

for循環中有一些常用的變量

  1. forloop.counter 當前索引,從1開始
  2. forloop.counter() 當前索引,從0開始
  3. forloop.revcounter 循環剩余的次數
  4. forloop.revcounter() 循環剩余的次數 -1
  5. forloop.first 是否第一次循環
  6. forloop.last 是否最後一次循環
  7. forloop.parentloop 嵌套循環,獲取上冊循環
  • 過濾器

{ { 變量 | 過濾器:參數 }}

模板作用safe關閉標簽的自動轉義length獲取變量的長度default當變量為False,顯示默認值date日期格式upper/lower大小寫slice切片 { { name

例子

app1下的views.py

def var(request):
lists = ['java', 'Python', "c"]
dicts = {

'姓名': "艾希",
"年齡": 24
}
return render(request, 'app1/var.html', {
'lists': lists, 'dicts': dicts})

var.html

{
{ dicts.姓名 }}
<br />
{% for list in lists %}
<p>{
{ list }}</p>
{% endfor %}

自定義

在對應的app1下新建templatetags文件下,然後新建__init__.py文件和自己創建的過濾器。

在對應的過濾器中寫入,這裡對對應的值如果大於傳入的參數,則分割加上…來顯示

from django import template
register = template.Library()
@register.filter
def show_title(value, n):
if len(value) > n:
return f'{
value[0:n]}...'
else:
return value

對應的模板文件

{% load myfilter %} {
{ dicts.標題 |show_title:10 }}

自定義標簽和上面的原理一致。

模板繼承

新建一個base.html頁面作為模板

<html>
<head></head>
{% block title %}
<title>這是母版</title>
{% endblock %}
<body>
<table border="1" >
<tr>
<td colspan="2" >
這是top區域,一般用於導航
</td>
</tr>
<tr >
<td >這是左邊的菜單</td>
<td >
{% block content %} 這個區域隨著內容頁的變化而變化 {% endblock %}
</td>
</tr>
<tr>
<td colspan="2" >
這是底部區域,一般用於導航
</td>
</tr>
</table>
</body>
</html>

新建一個頁面,繼承base頁面。

{% extends "app1/base.html" %} {% block title %}
<title>這是歡迎頁面</title>
{% endblock %} {% block content %}
<div >歡迎來到我的特色小店</div>
{% endblock %}

新建路由,測試,也可使用{% include %}


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved