Django的记录(五) 模板

2019-10-19  本文已影响0人  IT_小马哥

模板

  1. DTL(django templates,language)django内置,完美兼容
  2. Jinjia2(django支持)

模板用到的函数

render 将模板加载并包装成对象直接返回

def index(request):
    #三个参数,第一个必须是request,然后是模板,然后是传递给模板的值(字典)
   return render(request,'index.html',context = context)

HttpResponse,就返回一个模板或者字符串

def index(request):
    HttpResponse(html)

模板路径

设置模板

APP_DIRS 为True,开始在DIRS下依次查找模板,如果找不到模板,就会检查当前视图的APP是否注册,如果注册,就会去APP下面寻找模板,如果还找不到,就会去其他已经注册的APP中查找模板

要使用APP下的模板,需要将APP在setting注册

模板标签

if

 {% if age < 18 %}
    <p> 未成年</p>
  {% elif age == 18 %}
    <p> 卡哇伊进入</p>
  {% else %}
    <p> 成年</p>
 {% endif %}

for...in标签

<ul>
    {% for hero in heros %}
        <li>{{ hero }}</li>
    {% endfor %}
</ul>

<td>{{ forloop.counter }}</td>
<td>{{ forloop.counter0 }}</td>
    {% if forloop.first %}
        <tr style="background: pink;">
    {% elif forloop.last %}
        tr style="background: red">
    {% else %}
        <tr>
    {% endif %}
{% for comment in comments %}
    <li>{{ comment }}</li>
{% empty %}
    <li> 没有评论</li>
{% endfor %}

字典

{% for key in person.keys %}
    <li>{{ key }}</li>
{% endfor %}

url标签

<li><a href="{% url 'book' %}">读书</a></li
<li><a href="{% url "detail" book_id = '1' %}">最火的</a></li>
<li><a href="{% url "login" %}?next=/">登录</a></li>
def login(request):
    next = request.GET.get('next')
    text = "登录完成跳转的页面{0}".format(next)
    return HttpResponse(text)
上一篇下一篇

猜你喜欢

热点阅读