django一些坑

学习资料:Django 模板 | 菜鸟教程

场景1:

照着网上学习django if语句,执行的时候报错,报django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '>=90' from 'num>=90'

我写的代码如下:

{%if num>=90 and num<=100 %}
优秀
{%elif num>60 and num<=90%}
合格
{%else%}
不及格
{%endif%}

表面上看着合情合理,并没有什么明显错误,但还是报错。

解决方案:

原因是,条件判断的格式有问题,变量num、判断符、条件这三者之间一定要用空格隔开,num>=90,要写成num >= 90。这样才是正确的格式。

{%if num >= 90 and num <= 100 %}
优秀
{%elif num > 60 and num <= 90%}
合格
{%else%}
不及格
{%endif%}

场景2:

学习子模块继承父模板,执行的时候报错,django.template.exceptions.TemplateSyntaxError: <ExtendsNode: extends "base.html"> must be the first tag in the template.

父模板如下<base.html>:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>菜鸟教程 Django 测试。</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>

子模板如下<runoob.html>,因为在学习继承之前,还学习了其他东西,代码都写在runoob.html里,学习到继承时,代码也是紧跟其后,写在后面,前面学习所写的例子都没有删。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>菜鸟教程</title>
</head>
<body>
    {% load static %}<img src="{% static 'images/123.webp' %}" alt="runoob-logo">
<h1>{{hello}}</h1>
<p>{{name}}</p>
<p>{{name.0}}</p>
<p>{{name.1}}</p>
<p>{{name.2}}</p>
<p>{{HELLO_lower|lower}}</p>
<p>{{hello_first_upper|first|upper}}</p>
<p>{{views_str|safe}}</p>

{% extends "base.html" %}
 
{% block mainbody %}
<p>继承了 base.html 文件</p>
{% endblock %}

解决方案:

报错的原因正是这个子模板runoob.html,在用子模板时,{% extends "base.html" %}这行代码,必须写在文章第一行或者<body>下第一行,不能写在中间,即使前面都是注释也不行。所以将runoob.html更改为:     (把前面所写的例子都删了)

{% extends "base.html" %}
 
{% block mainbody %}
<p>继承了 base.html 文件</p>
{% endblock %}

或者更改为:(不想删除自己之前所写的例子){% block mainbody %} 把自己所写的例子加在中间{% endblock %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>菜鸟教程</title>
</head>
<body>
{% extends "base.html" %}
 
{% block mainbody %}

{% load static %}<img src="{% static 'images/123.webp' %}" alt="runoob-logo">
<h1>{{hello}}</h1>
<p>{{name}}</p>
<p>{{name.0}}</p>
<p>{{name.1}}</p>
<p>{{name.2}}</p>
<p>{{HELLO_lower|lower}}</p>
<p>{{hello_first_upper|first|upper}}</p>
<p>{{views_str|safe}}</p>


<p>继承了 base.html 文件</p>
{% endblock %}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值