博客 / 詳情

返回

Django學習筆記002-模板語法

1、模板目錄

“應用名稱”/templates
默認在根目錄查找同名目錄

settings.py(優先在項目的根目錄templates查找)

'DIRS':[os.path.join(BASE_DIR,'templates']

2、靜態文件

  • 圖片
  • CSS
  • js
    都會當作靜態文件處理,該文件夾為應用下邊的static目錄

setting.py有關static目錄定義
STATIC_URL = '/static/'

引入static目錄
{% load static %}

模板使用引用的static目錄下靜態文件

<img src="{% static 'img/123.png'%}" alt="">

3、模板語法

在HTML中寫一些佔位符,由Django對這些佔位符進行替換和處理

3.1 獲取視圖函數傳值
def tpl(request):
    name = "韓超"
    roles = ["管理員","CEO","保安"]
    #單獨的值用花括號字典方式
    return render(request, 'tpl.html', {"n1": name,"n2":roles})
<body>
    <h1>模板語法的學習</h1>
    <div>{{n1}}</div>
    <div>{{n2}}</div>
    <div>{{n2.0}}</div>
    <div>{{n2.1}}</div>
    <div>{{n2.2}}</div>
</body>
</html>
3.2 列表取值
    <h1>模板語法的學習</h1>
    <div>{% for item in n2 %}
        <span>{{item}}</span><br>
        {% endfor %}
    </div>
3.4 字典取值
#views.py
def tpl(request):

    user_info = {"name":"郭智","salary":10000,"role":"CTO"}
    return render(request, 'tpl.html', {"n1": name,"n2":roles,"n3":user_info})
#模板.html        
<ul>
    {% for k,v in n3.items %}
    <li>{{k}} = {{v}}</li>
    {% endfor %}
</ul>
3.4 列表裏的字典取值
#views.py
def tpl(request):

    data_list = [
        {"name":"郭智","salary":10000,"role":"CTO"},
        {"name":"盧慧","salary":10000,"role":"CTO"},
        {"name":"趙建先","salary":10000,"role":"CTO"},
    ]
    return render(request, 'tpl.html', {"n4":data_list})
#模板.html        
        {% for item in n4 %}
        <div>{{item.name}} {{item.salary}}</div>

        {% endfor %}
3.5 模板裏的條件語句
{% if n1 == "韓超" %}
<h1>這個是對的</h1>
{% else %}
<h1>這個是錯誤的</h1>
{% endif %}
3.6 模板裏有關choices取真正值

get_status_display

#models.py    

status_choices = (
        (1,'已佔用'),
        (2,'未使用')
    )
    status = models.SmallIntegerField(verbose_name="狀態",choices=status_choices,default=2)
{% for obj in queryset %}
 <tr>
 <td>{{ obj.id }}</td>
 <td>{{ obj.get_level_display }}</td>
 <td>{{ obj.get_status_display }}</td>
<td>
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.