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>

VIRIYA
1 声望0 粉丝