美文网首页
模板、csrf攻击解释、网址反转解析

模板、csrf攻击解释、网址反转解析

作者: 简单可靠才可信 | 来源:发表于2020-02-25 10:24 被阅读0次

django中文3.0版本帮助文档

模板

1.模板语言

简称DTL(Django Template Language)

2.模板变量

模板变量名是由数字,字母,下划线和点组成的,不能以下划线开头

使用模板变量:{{ 模板变量名 }}

点前面的可能是字典,对象,列表

3.模板标签(比较操作符两边必须有空格)

模板标签的统一表达式:{% python代码 %}
遍历的次数:{{ forloop.counter }}
if语句的使用:
{% if 条件 %}
{% endif %}
3.1模板过滤器

date: 改变日期的显示格式

length: 求长度。字符串,列表

default: 设置模板变量的默认值

格式:模板变量 | 过滤器:参数

4.自定义过滤器函数,至少有一个参数,最多两个参数

5.django的注释

单行注释:{# 注释内容 #}
多行注释:{% comment %}注释内容{% endcomment %}

6.模板的继承

{% extends 'booktest/base.html' %} 这行代码继承父模板(base.html)的所有内容

{% block 块名 %}
    {{ block.super }}
    block.super可以获取父模块的内容
    这里可以写子模版想要写的内容
{% endblock 块名 %}
错误:TemplateSyntaxError
解决方法:查看每个关键字间是否只有一个空格

7.html转义

使用safe过滤器关闭转义:<br/>
{{ content|safe }}

使用autoescape标签关闭html转义:<br/>
{% autoescape off %}    
{{ content }}
{% endautoescape %}

模板硬编码默认不会经过转义:<br/>
{{ no_content|default:'<h2>硬编码</h2>' }}

8.csrf攻击(跨站请求伪造)

开启csrf防护,需要在post表单下加入以下代码才能避免自己的网站被屏蔽

{% csrf_token %}

其他没有包含csrfmiddlewaretoken标签的网页会返回403错误

8.1防御原理:

1)渲染模板文件时在页面生成一个名字为 csrfmiddlewaretoken 的隐藏域。

2)浏览器在访问服务器的时候,服务器会交给浏览器保存一个名字为csrftoken的cookie信息。

3)提交表单时,两个值都会发给服务器,服务器进行比对,如果一样,则csrf验证通过,否则返回403错误。

9.网址反向解析

需要在include中添加app name和namespace,一般情况是全部一样,

在需要反向解析的网址后面加入name指定后面需要反向解析的名字,

在模板文件中需要加入{% url 'booktest:index' %}代码,在应用的urls中配置是指定name;

url(r'^', include(('booktest.urls', 'booktest'), namespace='booktest')),
url(r'^index3$', views.index, name='index'),
{% url 'booktest:index' %}

相关文章

网友评论

      本文标题:模板、csrf攻击解释、网址反转解析

      本文链接:https://www.haomeiwen.com/subject/ewjzqhtx.html