表单验证

django表单

て烟熏妆下的殇ゞ 提交于 2019-11-27 17:15:06
表单是交互性网站的支柱。 本文内容包括django对表单提交数据的访问,有效性检查以及其他处理,还有HttpRequest对象和Form对象。 一、HttpRequest的URL相关信息 定义views.py def current_url_view(request): return HttpResponse("Welcome to the page at %s,host is %s,full path is %s,is_secure is %s" % (request.path,request.get_host(),request.get_full_path(),request.is_secure())) 可以显示出: Welcome to the page at /url/,host is 10.1.101.227:9000,full path is /url/,is_secure is False 二、request.META 显示所有META,在views.py里增加函数display_meta。 def display_meta(request): values = request.META.items() values.sort() html = [] for k, v in values: html.append('<tr><td>%s</td><td>%s</td>

Day46(1)

梦想与她 提交于 2019-11-27 17:09:11
一、body标签中相关标签 1、无序列表 <ul> ,无序列表中的每一项是 <li> 英文单词解释如下: ul:unordered list,“无序列表”的意思。 li:list item,“列表项”的意思。 示例: <ul> <li>张三</li> <li>李四</li> <li>王五</li> </ul> 注意: li不能单独存在,必须包裹在ul里面;反过来说,ul的“儿子”不能是别的东西,只能有li。 我们这里再次强调,ul的作用,并不是给文字增加小圆点的,而是增加无序列表的“语义”的。 属性: type="属性值" 。属性值可以选: disc (实心原点,默认), square (实心方点), circle (空心圆)。 列表之间是可以 嵌套 的。我们来举个例子: 代码: <ul> <li><b>北京市</b> <ul> <li>海淀区</li> <li>朝阳区</li> <li>东城区</li> </ul> </li> <li><b>广州市</b> <ul> <li>天河区</li> <li>越秀区</li> </ul> </li> </ul> 声明:ul的儿子,只能是li。但是li是一个容器级标签,li里面什么都能放。甚至可以再放一个ul。 2、有序列表 <OL> ,里面的每一项是 <li> 英文单词:Ordered List。 例如: <ol> <li>嘿哈</li>

【前端基础之HTML】 -- 2019-08-16 22:36:05

那年仲夏 提交于 2019-11-27 14:00:33
原文: http://blog.gqylpy.com/gqy/235 " 目录 一、HTML介绍 二、head内常用标签 三、body内常用标签 一、HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET, SO_REUSEADDR sk = socket()sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 8080))sk.listen() while 1: conn, addr = sk.accept() info = conn.recv(10240) print(info) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'<h1>Hello world!</h1>') conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 2. HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页(对于不同的浏览器

【前端基础之HTML】 -- 2019-08-16 22:14:28

拟墨画扇 提交于 2019-11-27 13:58:36
原文: http://blog.gqylpy.com/gqy/235 " 目录 一、HTML介绍 二、head内常用标签 三、body内常用标签 一、HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET, SO_REUSEADDR sk = socket()sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 8080))sk.listen() while 1: conn, addr = sk.accept() info = conn.recv(10240) print(info) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'<h1>Hello world!</h1>') conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 2. HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页(对于不同的浏览器

【前端基础之HTML】 -- 2019-08-16 19:32:06

坚强是说给别人听的谎言 提交于 2019-11-27 13:36:46
原文: http://blog.gqylpy.com/gqy/235 " 目录 一、HTML介绍 二、head内常用标签 三、body内常用标签 一、HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET, SO_REUSEADDR sk = socket()sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 8080))sk.listen() while 1: conn, addr = sk.accept() info = conn.recv(10240) print(info) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'<h1>Hello world!</h1>') conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 2. HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页(对于不同的浏览器

【前端基础之HTML】 -- 2019-08-16 19:24:54

隐身守侯 提交于 2019-11-27 13:35:51
原文: http://blog.gqylpy.com/gqy/235 " 目录 一、HTML介绍 二、head内常用标签 三、body内常用标签 一、HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET, SO_REUSEADDR sk = socket()sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 8080))sk.listen() while 1: conn, addr = sk.accept() info = conn.recv(10240) print(info) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'<h1>Hello world!</h1>') conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 2. HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页(对于不同的浏览器

防止跨站攻击——CSRFToken

允我心安 提交于 2019-11-27 13:31:54
怎么防止跨站攻击: 表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token。 非表单:在ajax获取数据时,添加headers:{ 'X-CSRFToken':getCookie('csrf_token') }。 原理:在浏览器访问网站A时,网站A设置cookie会增加随机值csrf_token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把csrf_token传给表单里面的隐藏字段。所以当浏览器用自己的表单时会自带csrf_token,网站A取到这个值和cookie里的csrf_token一致就通过。而网站B里面的表单没有这个值,所以不能通过,这样就阻止了恶意攻击。非表单也是这样的原理。 CSRF:无法获取受害者的cookie,无法看到cookie; 只是利用受害者是被服务器信任的(靠验证cookie),而给服务器发送请求; 来源: https://www.cnblogs.com/shengguorui/p/11365832.html

【前端基础之HTML】 -- 2019-08-16 11:49:14

会有一股神秘感。 提交于 2019-11-27 12:25:22
原文: http://blog.gqylpy.com/gqy/235 " 目录 一、HTML介绍 二、head内常用标签 三、body内常用标签 一、HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET, SO_REUSEADDR sk = socket()sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)sk.bind(('127.0.0.1', 8080))sk.listen() while 1: conn, addr = sk.accept() info = conn.recv(10240) print(info) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') conn.send(b'<h1>Hello world!</h1>') conn.close() 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端把HTML文件内容发给浏览器 --> 浏览器渲染页面 2. HTML是什么? 超文本标记语言(Hypertext Markup Language, HTML)是一种用于创建网页的标记语言 本质上是浏览器可识别的规则,我们按照规则写网页,浏览器根据规则渲染我们的网页(对于不同的浏览器

Flask模板

烈酒焚心 提交于 2019-11-27 12:00:34
模板 模板导入就是将另一个模板加载到当前模板中,直接渲染。模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。 典型应用:网站的头部、尾部信息。 模板导入  语法 {% include(‘模板名称’) %} {% include(‘目录/模板名称’) %} 使用 忽略模板文件不存在时的错误 {% include 'footer.html' ignore missing %} #也可以组成模板列表,会按照顺序依次加载 {% include ['footer.html','bottom.html','end.html'] ignore missing %}` 模板继承  如果发现在多个模板中某些内容相同,那就应该把这段内容定义到父模板中。 标签block:用于在父模板中预留区域,留给子模板填充差异性的内容,名字不能相同。 为了更好的可读性,建议给endblock标签写上名字,这个名字与对应的block名字相同。父模板中也可以使用上下文中传递过来的数据。 父模板 {%block 名称%} 预留区域,可以编写默认内容,也可以没有默认内容 {%endblock %} 子模板 标签extends:继承,写在子模板文件的第一行。 {% extends "父模板路径"%} 如果子模版没有填充,则使用父模版定义的默认值。如果有就是用子模板的实际填充内容 {%block 名称

django创建表单以及表单数据类型和属性

[亡魂溺海] 提交于 2019-11-27 10:47:11
08.15自我总结 关于django的表单不同关系之间的创建 一.不同关系之间的创建 1.一对一 举例 母表:userinfo id name age 1 张三 12 2 李四 58 字表:private id salary sp_id 1 100 1 2 400 2 models.py class UserInfo(models.Model): name = models.CharField(max_length=32, null=True) age = models.IntegerField(null=True) class Private(models.Model): salary = models.CharField(max_length=32, null=True) sp = models.OneToOneField("UserInfo", null=True) #oneTooneField: 一对一, 默认要求该字段必须是唯一的 unique 外键关系 插入信息 models.UserInfo.objects.create(name='张三',age=12) models.Private.objects.create(salary=100,sp_id=1) 查询 #从母表查询子表中的数据 #方法1:res = models.UserInfo.objects.filter