三、Django的模板语法

在web开发中,我们经常需要通过将数据库中的数据取出,然后填入页面中,而不是像刚开始写html页面那样,所有的东西都是静态指定的,而在Django中,想要将后端从数据库中查出的数据传入前端页面,就用到了模板语法,由此易知,模板语法是写在Django的html页面中的。

模板语法的标签

在模板语法中,用{{ }}渲染变量,基本语法为{{ 变量名 }};用{% %}渲染语句,基本语法为{% 语句 %};以上就是模板语法的两个重要的标签,下面介绍模板语法基本的语句,针对变量的渲染,会在过程中以实例代替,这里不做讨论。

模板基本的语句

1、for循环
示例:

 {% for item in person_list %}  #这是写在html类型文件中的,在Django框架中的templates文件夹
      <p>{{ item }}</p>
      {% endfor %}
  <p>{{ forloop.counter }}{{ item }}</p>
  forloop.counter:是一个记住循环次数的东西

注: 在本示例中,person_list代表要循环的列表(字典等等),其是由view函数最后的return参数指定的(render函数的参数里最后的字典),其中item代表每项的内容,中间是循环体。
基本语法总结:

{% for 变量 in 视图函数传入的数据 %}
	具体的操作
{% endfor %}

附: 视图函数即views.py文件中的函数
2、if判断(for循环中的)
示例:

 {% if age > 100 %}
      <p>100</p>
 {% elif age <= 100 %}
      <p>{{ age }}</p>
 {% endif %}

注: 其中,age是后端views.py文件中相应的视图函数传入数据,表示的意思是如果age大于100就在页面中渲染上面的标签,即只显示<p>100</p>;如果age小于等于100,则显示真实年龄。
基本语法总结:

{% if 条件1 %}
	条件1为真执行的操作
{% elif 条件2 %}
	条件2为真要执行的操作
{% endif %}

3、with语句
示例:

 #给person_list.2.name起别名,别名为name
 {% with name=person_list.2.name %}
 	{{ name }}
 {% endwith %}

说明: 本例表示将“person_list.2.name”重命名为“name”
基本语法:

{% with 别名=真名 %}
  用别名进行的操作
{% endwith %}

4、csrf标签:
csrf标签是Django自带的一个安全防护措施,在用form表单进行进行post请求时,必须要加入{% csrf_token %}标签,否则会报错,浏览器显示服务器拒绝服务(403错误)
示例:

 <form action="" method="post">
        <input type="text" name="user">
        <input type="submit">
        </form>
        <!--加入{% csrf_token %}可以使form顺利通过服务器认证-->
        <form action="" method="post">
            {% csrf_token %}
            <input type="text" name="user">
            <input type="submit">
        </form>

注: {% csrf_token %}这个标签被渲染成了<input type="hidden" name="csrfmiddlewaretoken" value="uvNIfk4OUPbmKf9dROTqCkfKhmVdD88oem4qPJaejhG6C7lYdVPZGKmyUbPdUG0q">;其中value是不固定的,并且这个语句必须放在form表单内部才可以生效,这个机制具有一定的防护效果,可以防止某些用户访问服务器。
基本语法:

<form action="url" method="post">
	{% csrf_token %}
	其他html标签
</form>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值