Django web框架-----Django templates模板

說明:mytestsite是django框架下的項目,quicktool是mytestsite項目中的應用html

 

 

通常的變量之類的用 {{ }}(變量),功能類的好比循環、條件判斷是用 {% %}(標籤)django

  • 實例一:顯示一個基本的字符串到網頁上

quicktool/view.py文件修改視圖函數index(),渲染一個home.html模板,在視圖中傳遞一個字符串名稱是 string 到模板 home.htmlapp

def index(request):
    string = u'這是一個由Django2.1.7版本寫出的視圖內容!'
    return render(request, 'home.html',{'string':string})

quicktool(應用app)下建立一個templates文件夾(模板),在templates下建立一個home.html框架

<!DOCTYPE html>
<html>
<head>
    <title>學習Django</title>
</head>
<body>

{{ string }}

</body>
</html>
  • 實例二:用for循環顯示一個基本的List內容

quicktool/view.py文件修改視圖函數index(),渲染一個home.html模板,在視圖中傳遞一個List到模板home.html函數

def index(request):
    TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
    return render(request, 'home.html',{'TutorialList':TutorialList})

quicktool(應用app)下建立一個templates文件夾(模板),在templates下建立一個home.htmloop

<!DOCTYPE html>
<html>
<head>
    <title>學習Django</title>
</head>
<body>

語言類型列表:
{%  for i in TutorialList %}
{{ i }}
{% endfor %}
</body>
</html>
  • 實例三:顯示字典中的內容

quicktool/view.py文件:學習

def index(request):
   info_dict = {'site': u'本地環境', 'content': u'Django技術'}
   return render(request, 'home.html', {'info_dict': info_dict})

quicktool/templates/home.html文件:ui

開發環境:
{{ info_dict.site }}
學習內容:
{{ info_dict.content }}

quicktool/templates/home.html文件(遍歷字典):url

{% for key, value in info_dict.items %}
    {{ key }}: {{ value }}
{% endfor %}
  • 實例四:進行條件判斷和for 循環

quicktool/view.py文件:code

def home(request):
    List = map(str, range(100))# 一個長度爲100的 List
    return render(request, 'home.html', {'List': List})

quicktool/templates/home.html文件:

{% for item in List %}
    {{ item }}, 
{% endfor %}

打印到頁面的最後一個數字有逗號,使用forloop.last判斷是否爲最後一項,不是最後一項就加逗號,是最後一項就不加

{% for item in List %}
    {{ item }}{% if not forloop.last %},{% endif %} 
{% endfor %}
  • forloop的一些變量

當列表中可能爲空值時用for...empty...

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <li>抱歉,列表爲空</li>
{% endfor %}
</ul>
  • 實例五:邏輯操做

① ==, !=, >=, <=, >, < (注意:比較符號先後必須有至少一個空格!)

{% if var >= 90 %}
成績優秀
{% elif var >= 80 %}
成績良好
{% elif var >= 70 %}
成績通常
{% elif var >= 60 %}
須要努力
{% else %}
不及格
{% endif %}

②and, or, not, in, not in

# 判斷 num 是否是在 0 到 100 之間:
{% if num <= 100 and num >= 0 %}
num在0到100之間
{% else %}
數值不在範圍以內!
{% endif %}
  • 實例六:獲取當前用戶、當前網址、當前GET參數

①獲取當前用戶

{% if request.user.is_authenticated %}
    {{ request.user.username }},您好!
{% else %}
    請登錄,這裏放登錄連接
{% endif %}

②獲取當前網址

{{ request.path }}

③獲取當前GET參數

{{ request.GET.urlencode }}

合併到一塊兒用的例子

<a href="{{ request.path }}?{{ request.GET.urlencode }}&delete=1">當前網址加參數 delete</a>

網頁上的這個a標籤href=「/?&delete=1」,每點擊一次標籤a網頁的地址新增參數?delete=1&delete=1...

相關文章
相關標籤/搜索