转义

变量和字符串

落爺英雄遲暮 提交于 2020-01-19 17:42:19
一、变量名 1、变量名在使用之前需进行赋值 2、变量名是由数字,字母,下划线组成,但是不能以数字作为开头,这与C的标识符的规则是一样的 3、Python中区分字母大小写 4、要区分=与==,=是赋值,==是比较大小,判断等号两边是不是相等 5、在取变量名的时候,要尽量专业。eg:t = "小甲鱼"与teacher = “小甲鱼”,应取后者 二、字符串 1、字符串的加法即为字符串的拼接 2、书写字符串时,单引号或者双引号应成对出现 3、若字符串内容中出现单引号或者双引号时,有两种方法可以打印 。 第一种:转义字符转义 >> > str = 'Let' s go! '' SyntaxError : invalid syntax >> > str = 'Let\'s go!' >> > str "Let's go!" 第二种直接用双引号 >> > str = 'Let' s go!' SyntaxError : invalid syntax >> > str = "Let's go!" >> > str "Let's go!" 4、原始字符串(自动加上转义字符\):当字符串中有一个或者多个反斜杠(\)时,用原始字符串即可解决该问题。在该字符串之前加上一个小写字母r 即可。 >> > str = "C:\now\bin" >> > str 'C:\now\x08in' >> > print

mybatis字符串转义问题解决

眉间皱痕 提交于 2020-01-19 15:46:53
mybatis字符串转义问题解决 问题描述 原因分析 字符串替换 总结 问题描述 提前剧透: 如果参数中有. ?等特殊参数,需要使用${},但需要注意sql注入问题 @Select("select * from account order by #{orderBy} #{orderRule} limit #{start},#{offset}") public List<Account> getAccountList(@Param("orderBy") String orderBy, @Param("orderRule") String orderRule, @Param("start) int start, @Param("offset") int offset); 如上代码所示,在执行查询操作时,为了能够与前端联动进行排序,直接在SQL参数中传递排序字段和排序规则。 但是,在调试时偶然发现,当传递的“orderBy”值为不存在的字段时,竟然不会报错!!! 经过进一步调试发现,实际上并不会按照预期的排序规则返回数据列表!!! 原因分析 设置log4j的日志级别为DEBUG后发现,最终执行的SQL语句是一个预编译操作,mybatis输出日志如下: ==> Preparing: select * from account order by ? ? limit ?, ? ==>

【网络基础】数据链路层实现的三大功能

走远了吗. 提交于 2020-01-18 12:08:33
数据链路层实现的三大功能分别为: (1) 封装成帧 (2) 透明传输 (3) 差错控制 1、 封装成帧 封装成帧 就是在一段数据前后 分别加入首部和尾部 ,构成了一个帧。 接收端在收到物理层上交的比特流后。能依据首部跟尾部的标记。从收到的比特流识别帧的開始和结束。 此外,首部跟尾部还包含很多必要的控制信息。 在发送帧时,是 从帧首部開始发送。各种数据链路层协议都要对帧首尾部格式有明白的规定。每一种协议都限定了帧的数据部分长度上限----- 最大传输单元MTU。 附:最大传输单元MTU (笔者腾讯一面亲历) 一个UDP报文能传输的最大数据为多大? 以太网的数据链路层规定了最大传输单元MTU=1500(字节),那么实际上一个IP数据报最长也就是1500 字节,而IP数据报又是由UDP报文或TCP流封装得到的,那么一个UDP报文最大长度为1500-20=1480.20为IP数 据报的首部长度。 而在运输层。UDP也有自己的首部(8字节),所以在应用层一个UDP报文能传递的最大数据 为1500-20-8=1472(字节) 2 、透明传输 什么是透明传输,为什么须要透明传输?看下图: 解决透明传输的方法: 1、发送端的数据链路层在数据中出现控制字符“SOH”或“EOT”的前面插入一个 转义字符“ESC” (其十六进制编码是 1B)。 2、字节填充或字符填充—

Python中autoescape标签使用详解

风流意气都作罢 提交于 2020-01-16 12:36:10
1.spaceless标签:移除html标签中的空白字符。包括空格、tab键、换行符,示例代码如下: {% spaceless %}具体内容{% endspaceless %} 2.autoescape标签:DTL模板中默认已经开启了自动转义,会将那些特殊字符串进行转义,比如会将“<”转义成<会将“>”转移成“>”,使用DTL的自动转义,可以使网站不容易出现XSS漏洞。 如果变量是可信任的,那么可以使用“autoescape”标签来关掉 自动转义,示例代码如下: views.py中代码如下: from django.shortcuts import render def index(request): # 定义一个上下文 context = { "info":"<a href='https://wwww.baidu.com'>百度</a>" } return render(request,'index01.html',context=context) index01.html中代码如下: <body> <!--此时关掉了DTL模板中的自动转义功能--> {% autoescape off %} {{ info }} {% endautoescape %} </body> 运行结果如下: 查看不关掉DTL自动转义功能时,运行结果如下: 如果想要查看特殊字符被转义为什么了

第二节:第二天 - 数字与字符串/列表list

北战南征 提交于 2020-01-16 09:56:54
列表 列表内可以是数字,字符串,和列表 列表支持截取和切割 l=[1,2,3,‘abc’,[2,3,5]] 字典表 d={‘name’:‘Tom’,‘age’:20,‘job’:‘dev’} 健和值 可以用get来获取值 例如:d.get(‘gender’,‘男’) #元组tuple t=(1,2,3) 列表是支持原位修改的,元组是不支持的 浮点型 浮点型的精度不够 数据类型 1.数值 声明/赋值/使用 2.表达式 3.显示 ‘{0}’.format(20) ‘3+2={0}’.format(5) –> 3+2=5 ‘f={0:.2f}’.format(f) ‘f=3.33’ 4.比较,返回布尔型结果:True,False > ,<, >=,<=,!=,== 5.相除 /, // 6. 取整 math.floor() 正向取整 math.trunc() 往0的方向移 round()四舍五入 7.整型 无限精度,仅受限于内存与计算机配置 8.十六进制,八进制,二进制 字面值 0o八进制 0x十六进制 0b二进制 转换 oct() hex() bin() 二进制 9. decimal.Decimal(‘3.14’) 10.布尔型 True : int 1 False: int 0 字符串 1.声明 ‘’ “” “”"##""" 说明性文档 2.转义符 ’ " \n 换行 \b 退格键

python爬虫反虫之setcookie

女生的网名这么多〃 提交于 2020-01-16 03:49:40
反爬表现 在使用python或rust进行爬虫的时候的有时会遇到请求返回一段含有只含有js代码的html页面如图: 分析及优化文件 首先解决转义字符\x63\x73\x4b,转义字符可以通过console.log()打印出来,最方便方式是打开f12控制,将字符贴到console窗口中可以直接转义,下面附图是通过火狐的控制台打印的 可以看出\x63\x73就是cs 不过这样一个一个转换比较麻烦,可以到https://tool.lu/js去转换,不过这个工具对于有些代码转换的不够好,可以把源文件只格式后手动替换这些转义的代码,转换并替换后如下图 经分析js文件大体分为四部分 一、全局变量arg1与_0x4818 其中变量arg1是是用来解密的一个参数,这个参数每次加载文件返回的该值都不一样,变量_0x4818是一个初始解密参数数据,该参数经过(function(param, number) { } (arrayParam, 0x15b));初始化后会扩充调用 _0x4db1c函数来扩充_0x4818数组,用于后面的解密用相关代码如下 (function(param, number) { var _0x4db1c = function(_0x48181e) { while (--_0x48181e) { param['push'](param['shift']()); } console

字符串转义和正则转义

人盡茶涼 提交于 2020-01-14 23:01:04
参考 原始字符串 r"xxx" 常用在正则表达式中 普通字符串 “xxx” 若要用在正则表达式中,需要先进行字符串转义,再进行正则转义 print ( r 'hello\world\nzyl' ) #原始字符串 print ( 'hello\world\\nzyl' ) #字符串转义 运行后输出结果是一样的 print ( re.match ( r '.*(\d+)\\' , string ) .group ( 0 )) print ( re.match ( '.*(\d+)\\\\' , string ) .group ( 0 )) 上面两种方式的返回值都是一样的,尽量使用原始字符串进行正则转义 来源: CSDN 作者: 扣剑书生 链接: https://blog.csdn.net/weixin_44038167/article/details/103980187

shell命令echo(二)

感情迁移 提交于 2020-01-14 00:17:13
5、echo命令 1>、显示普通字符串: echo "It is a test" 2>、显示转义字符 echo "\"It is a test\"" 3>、显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 #!/bin/sh read name echo "$name It is a test" 4>、显示换行 echo -e "OK! \n" # -e 开启转义 5>、显示不换行 #!/bin/sh echo -e "OK! \c" # -e 开启转义 \c 不换行 echo "It is a test" 6>、显示结果定向至文件 echo "It is a test" > myfile 7>、原样输出字符串,不进行转义或取变量(用单引号) echo '$name\"' 8>、显示命令执行结果 echo `date` 注意: 这里使用的是反引号 `, 而不是单引号 '。 来源: CSDN 作者: Black10086 链接: https://blog.csdn.net/ls_call520/article/details/103915952

【前端开发】JSON.parse 解析json字符串时,遇换行符报错

不羁的心 提交于 2020-01-13 12:30:45
今天遇到后台返回的json字符串转对象时报错了,发现有个textarea提交的字段里有换行符。 错误原因:JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示 可以用str.replace(/\n/g,"\\\\n")转义,'\\'转成单个'\','\\n'转成'\n',最后转成'\\n'这样就可以用parse转成对象时变为'\n',取出的字符串设置到html文本中\n被解析为换行。 测试: 1.var kks="{"id":2,"name":null}"的reviver遍历前面两个是json字符串中的键值,空值暂时不知道是什么(原型Object?)。 2.json字符串有值为undefined解析会报错 2.JSON.stringify会忽略值为undefined的对象 语法规定:值undefined不包含在可以解析的范围内,所以会报错,哈哈。 错误原因:JSON.parse转json字符串时遇到一些特殊字符需要先转义,如图所示 可以用str.replace(/\n/g,"\\\\n")转义,'\\'转成单个'\','\\n'转成'\n',最后转成'\\n'这样就可以用parse转成对象时变为'\n',取出的字符串设置到html文本中\n被解析为换行。 测试: 1.var kks="{"id":2,"name":null}