Django 模版转义

2024-06-24 00:36
文章标签 django 模版 转义

本文主要是介绍Django 模版转义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,模版转义的作用

Django模版系统默认会自动转义所有变量。这意味着,如果你在模版中输出一个变量,它的内容会被转义,以防止跨站脚本攻击(XSS)。例如,如果你的变量包含HTML标签,这些标签会被转义,而不是被浏览器解释。

2,添加函数视图

Test/app5/views.py

from django.shortcuts import render# Create your views here.
import datetimedef filter(request):str1 = 'abcdefg'str2 = 'ABCDEFGHIJKLMNO'str3 = '123456789'time_str = datetime.datetime.now()return render(request, '5/filter.html', {'str1':str1, 'str2':str2, 'str3':str3, 'time_str':time_str})def html_filter(request):html_addr = """<table border='2'><tr><td>这是表格A</td><td>这是表格B</td></tr></table>"""html_script = """<script language='JavaScript'>document.write('非法执行');</script>"""return render(request, '5\html_filter.html', {"html_addr":html_addr, "html_script":html_script})

3,添加路由地址

Test/app5/urls.py

from django.urls import path
from . import viewsurlpatterns = [path('filter', views.filter, name='filter'),path('html_filter', views.html_filter, name='html_filter'),]

4,添加html代码

Test/templates/5/html_filter.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>关闭模版转义-表格: {{ html_addr|safe }}
默认模版转义-表格: {{ html_addr }}<br>
默认模版转义-脚本: {{ html_script }}<br>
关闭模版转义-脚本: {{ html_script|safe }}<br><!--{{ html_addr }}--><!--{{ html_script }}-->
<!--{{ html_script|safe }}--></body>
</html>

5,访问页面

http://127.0.0.1:8000/app5/html_filter

 

 Django 页面上直接显示了 “{{ html_addr|safe }}“ 和 “{{ html_script|safe }}“-CSDN博客

这篇关于Django 模版转义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088718

相关文章

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

Django 路由系统详解

Django 路由系统详解 引言 Django 是一个高级 Python Web 框架,它鼓励快速开发和干净、实用的设计。在 Django 中,路由系统是其核心组件之一,负责将用户的请求映射到相应的视图函数或类。本文将深入探讨 Django 的路由系统,包括其工作原理、配置方式以及高级功能。 目录 路由基础URL 映射路由参数命名空间URL 反向解析路由分发include 路由路由修饰符自

django学习入门系列之第三点《案例 小米商城头标》

文章目录 阴影案例 小米商城头标往期回顾 阴影 设置阴影 box-shadow:水平方向 垂直方向 模糊距离 颜色 box-shadow: 5px 5px 5px #aaa; 案例 小米商城头标 目标样式: CSS中的代码 /*使外边距等于0,即让边框与界面贴合*/body{margin: 0;}/*控制父级边框*/.header{backgroun

26.3 Django路由层

1. 路由作用 在Django中, URL配置(通常称为URLconf)是定义网站结构的基础, 它充当着Django所支撑网站的'目录'.URLconf是一个映射表, 用于将URL模式(patterns)映射到Python的视图函数或类视图上.这种映射机制是Django处理HTTP请求的基础, 它决定了当客户端发送请求时, Django如何调用相应的视图函数来生成并返回响应.通过URL

设计模式学习之模版方法模式

模板方法模式是一种基于继承的代码复用的行为型模式;在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。本篇博客我们一起来学习模版方法模式。 定义与UML图 定义 模板方法模式:定义一个操作

4.4、Django - URL之URL传参给视图(一)

1、为什么要在URL中传递参数? 参数,意味着在url中不固定,如果是写死固定的话,就不需要了 。 下面两幅图,显示的是前面部分相同的豆瓣的文章链接,只有后面的id不一样 。 在APP为douBook下的views.py中: from django.http import HttpResponsedef book_info(request):return HttpResponse("图书

4.3、Django - URL之URL映射

1、为什么Django项目在urls.py 文件中去寻找所有URL映射? 答:因为,在settings.py 文件中进行了配置。主要是ROOT_URLCONF = 'douAPI.urls'(根URL配置 = douAPI下urls.py)。 2、在urls.py 文件中所有的映射,都应该放在urlpatterns 中 。例如,urls.py # from django.conf.urls im

4.2、Django - URL之视图基本用法

此节介绍视图的基本用法。 视图 1、视图一般都是写在APP的views.py文件中 2、视图中函数的第一个参数永远都是request (一个HttpResponse)对象。该对象存储了请求过程中所有的信息,如:所需要的参数以及一些头部信息等 。在视图中,一般是完成逻辑相关的操作 。例如,该请求是添加文章列表,就可以通过request 来接受这些数据 ,然后存储到数据库,最后把执行结果返回浏览器

4.1、Django - URL之DEBUG模式详解

1、DEBUG模式 新建一个项目,默认在setting.py中开启了DEBUG模式,如下: # SECURITY WARNING: don't run with debug turned on in production!DEBUG = TrueALLOWED_HOSTS = [] 开启DEBUG模式有什么好处: 1、以后修改了Django项目的代码,然后CTR + s ,那么Djang

Django之云存储(二)

一、Django使用云存储 建立项目 django-admin startproject project_demo 创建子应用 python manage.py startapp app_name 修改配置文件,设置模板视图路径 settings.py TEMPLATES = [{'BACKEND': 'django.template.backends.django.Djan