摘要: 验证码 在用户注册、登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻一些服务器的压力 使用验证码也是一种有效的防止crsf的方法 验证码效果如下图: 验证码视图 新建viewsUtil.py,定义函数verifycode 此段代码用到了PIL中的Image、 阅读全文
posted @ 2017-06-10 14:36 hcw_19 阅读(317) 评论(0) 推荐(0) 编辑
摘要: csrf 全称Cross Site Request Forgery,跨站请求伪造 某些恶意网站上包含链接、表单按钮或者JavaScript,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站攻击 演示csrf如下 创建视图csrf1用于展示表单,csrf2用于接收po 阅读全文
posted @ 2017-06-10 14:34 hcw_19 阅读(195) 评论(0) 推荐(0) 编辑
摘要: HTML转义 Django对字符串进行自动HTML转义,如在模板中输出如下值: 视图代码: def index(request): return render(request, 'temtest/index2.html', { 't1': '<h1>hello</h1>' }) 模板代码: {{t1 阅读全文
posted @ 2017-06-10 14:29 hcw_19 阅读(1578) 评论(0) 推荐(0) 编辑
摘要: 模板继承 模板继承可以减少页面内容的重复定义,实现页面内容的重用 典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义 block标签:在父模板中预留区域,在子模板中填充 extends继承:继承,写在模板文件的第一行 定义父模板base.html 定义子模板inde 阅读全文
posted @ 2017-06-10 14:27 hcw_19 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 定义模板 模板语言包括 变量 标签 { % 代码块 % } 过滤器 注释{# 代码或html #} 变量 标签 { % 代码块 % } 过滤器 注释{# 代码或html #} 变量 语法: 当模版引擎遇到一个变量,将计算这个变量,然后将结果输出 变量名必须由字母、数字、下划线(不能以下划线开头)和点 阅读全文
posted @ 2017-06-10 14:24 hcw_19 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用 模板包含 HTML的静态部分 动态插入内容部分 阅读全文
posted @ 2017-06-10 14:22 hcw_19 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 状态保持 http协议是无状态的:每次请求都是一次新的请求,不会记得之前通信的状态 客户端与服务器端的一次通信,就是一次会话 实现状态保持的方式:在客户端或服务器端存储与会话有关的数据 存储方式包括cookie、session,会话一般指session对象 使用cookie,所有数据存储在客户端,注 阅读全文
posted @ 2017-06-10 14:20 hcw_19 阅读(1130) 评论(0) 推荐(0) 编辑
摘要: HttpResponse对象 在django.http模块中定义了HttpResponse对象的API HttpRequest对象由Django自动创建,HttpResponse对象由程序员创建 不调用模板,直接返回数据 #coding=utf-8 from django.http import H 阅读全文
posted @ 2017-06-10 14:18 hcw_19 阅读(13220) 评论(0) 推荐(1) 编辑
摘要: POST属性 QueryDict类型的对象 包含post请求方式的所有参数 与form表单中的控件对应 问:表单中哪些控件会被提交? 答:控件要有name属性,则name属性的值为键,value属性的值为键,构成键值对提交 对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存 阅读全文
posted @ 2017-06-10 14:16 hcw_19 阅读(759) 评论(0) 推荐(0) 编辑
摘要: GET属性 QueryDict类型的对象 包含get请求方式的所有参数 与url请求地址中的参数对应,位于?后面 参数的格式是键值对,如key1=value1 多个参数之间,使用&连接,如key1=value1&key2=value2 键是开发人员定下来的,值是可变的 示例如下 创建视图getTes 阅读全文
posted @ 2017-06-10 14:14 hcw_19 阅读(852) 评论(0) 推荐(0) 编辑