post请求

Django-类视图

匿名 (未验证) 提交于 2019-12-02 23:36:01
1 类视图引入 以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。 def register(request): “”“处理注册”"" # 获取请求方法,判断是GET/POST请求 if request . method == 'GET' : # 处理GET请求,返回注册页面 return render ( request , 'register.html' ) else : # 处理POST请求,实现注册逻辑 return HttpResponse ( '这里实现注册逻辑' ) 在Django中也可以使用类来定义一个视图,称为类视图。 使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。如下所示 from django.views.generic import View class RegisterView(View): “”“类视图:处理注册”"" def get ( self , request ): """处理GET请求,返回注册页面""" return render ( request , 'register.html' ) def post ( self , request ): """处理POST请求,实现注册逻辑"""

使用post请求下载文件

匿名 (未验证) 提交于 2019-12-02 23:36:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_19650093/article/details/90644986 downloadFile(){ var xhr = new XMLHttpRequest(); // xhr.open('GET', url, true); // 使用GET方式比较简单,参数直接附在URL上 xhr.open('post', url, true); //POST的格式相对比较灵活,参数可以有比较多的形式,例如JSON,表单FORM等 xhr.responseType = "blob"; // 返回类型blob xhr.setRequestHeader("Content-Type","application/json");//提交的数据为json格式 // 定义请求完成的处理函数 xhr.onload = function () { // 请求完成 if (this.status === 200) { // 返回200 var blob = this.response; var reader = new FileReader(); reader.readAsDataURL(blob); // 转换为base64,可以直接放入a表情href reader.onload = function

原生 Ajax 封装 和 Axios 二次 封装

匿名 (未验证) 提交于 2019-12-02 23:34:01
AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允许JavaScript在浏览器上执行。 兼容性 封装 XMLHttpRequest 1 // 创建 构造函数 2 function Ajax(obj) { 3 this.url = obj.url ||''; 4 this.type = obj.type || 'get'; 5 this.data = obj.data ||{}; 6 this.success = obj.success || null; 7 this.error = obj.error || null; 8 } 9 // 原型上创建方法支持 post 和 get 10 Ajax.prototype.send = function(){ 11 var self = this; 12 var toStr = Object.prototype.toString; 13 if (self.data === null && typeof self.data !== 'object' && Array.isArray(obj)) return; 14 return (function(){ 15 // 实例化 XML对象 16

cookie与session组件

99封情书 提交于 2019-12-02 23:26:00
cookie与session组件 会话跟踪技术 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。 在Web中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。 在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下:  请求银行主页; 请求登录(请求参数是用户名和密码); 请求转账(请求参数与转账相关的数据); 请求信誉卡还款(请求参数与还款相关的数据)。 在这上会话中当前用户信息必须在这个会话中共享的,因为登录的是张三,那么在转账和还款时一定是相对张三的转账和还款!这就说明我们必须在一个会话过程中有共享数据的能力。 会话路径技术使用Cookie或session完成 我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。 cookie介绍 cookie的由来

Django--cookie与session组件

限于喜欢 提交于 2019-12-02 22:58:40
目录 cookie与session组件 会话跟踪技术 什么是会话跟踪 会话路径技术使用Cookie或session完成 cookie介绍 什么是cookie cookie的原理 Cookie规范 Cookie的覆盖 在浏览器中查看cookie Django中操作Cookie 获取Cookie 设置Cookie 删除Cookie Cookie版登录校验 Session Session的由来 Django中Session相关方法 Session版登陆验证 Django中的Session配置 CBV中加装饰器 CBV实现的登录视图 1. 加在CBV视图的get或post方法上 2. 加在dispatch方法上 3. 直接加在视图类上,但method_decorator必须传 name 关键字参数 补充 cookie与session组件 会话跟踪技术 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。 在Web中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。

flask入门(二)

匿名 (未验证) 提交于 2019-12-02 22:51:30
1 GET 浏览器告知服务器:只获取页面上的信息并发给我。这是最常用的方法。 2 HEAD 浏览器告诉服务器:欲获取信息,但是只关心消息头 。应用应像处理 GET 请求一样来处理它,但是不分发实际内容。在Flask中你完全无需人工干预 3 POST 浏览器告诉服务器:想在URL上 发布新信息。并且服务器必须确保数据已存储且仅存储一次。这是 HTML 表单通常发送数据到服务器的方法。 4 PUT 类似 POST 但是服务器可能触发了存储过程多次,多次覆盖掉旧值。你可能会问这有什么用,当然这是有原因的。考虑到传输中连接可能会丢失,在 这种 情况下浏览器和服务器之间的系统可能安全地第二次接收请求,而 不破坏其它东西。因为 POST 它只触发一次,所以用 POST 是不可能的。 5 DELETE 删除给定位置的信息。 6 OPTIONS 给客户端提供一个敏捷的途径来弄清这个 URL 支持哪些 HTTP 方法。 从 Flask 0.6 开始,实现了自动处理。 @app.route('/request/') def get_http_message(): print('获取完整的请求url',request.url) print('获取去掉get传参的url',request.base_url) print('获取主机名部分的url',request.host_url) print(

SpringMVC框架 课程笔记

家住魔仙堡 提交于 2019-12-02 22:33:52
SpringMVC 框架 课程笔记 第0章 SpringMVC框架的核心内容 1.SpringMVC 概述 2.SpringMVC 的 HelloWorld 3. 使用 @RequestMapping 映射请求 4. 映射请求参数 & 请求头 5. 处理模型数据 6. 视图和视图解析器 7.RESTful CRUD 8.SpringMVC 表单标签 & 处理静态资源 9. 处理 JSON :使用 HttpMessageConverter 10. 文件的上传 11. 使用拦截器 12.SpringMVC 运行流程 13. 在 Spring 的环境下使用 SpringMVC 第1章 SpringMVC 概述 1.1 SpringMVC 概述 1) Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一 2)Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架。 3)Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任 何接口。 4)支持 REST 风格的 URL 请求。 5)采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。 1.2 SpringMVC是什么 1)一种轻量级的、基于MVC的Web层应用框架。偏前端而不是基于业务逻辑层

理解HTTP幂等性

こ雲淡風輕ζ 提交于 2019-12-02 22:21:42
基于HTTP协议的Web API是时下最为流行的一种分布式服务提供方式。无论是在大型互联网应用还是企业级架构中,我们都见到了越来越多的SOA或RESTful的Web API。为什么Web API如此流行呢?我认为很大程度上应归功于简单有效的HTTP协议。HTTP协议是一种分布式的面向资源的网络应用层协议,无论是服务器端提供Web服务,还是客户端消费Web服务都非常简单。再加上浏览器、Javascript、AJAX、JSON以及HTML5等技术和工具的发展,互联网应用架构设计表现出了从传统的PHP、JSP、ASP.NET等服务器端动态网页向Web API + RIA(富互联网应用)过渡的趋势。Web API专注于提供业务服务,RIA专注于用户界面和交互设计,从此两个领域的分工更加明晰。在这种趋势下,Web API设计将成为服务器端程序员的必修课。然而,正如简单的Java语言并不意味着高质量的Java程序,简单的HTTP协议也不意味着高质量的Web API。要想设计出高质量的Web API,还需要深入理解分布式系统及HTTP协议的特性。 幂等性定义 本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是: Methods can also have the property of "idempotence" in

Python模拟登录新浪微博

匿名 (未验证) 提交于 2019-12-02 22:11:45
PC 登录新浪微博时, 在客户端用js预先对用户名、密码都进行了加密, 而且在POST之前会GET 一组参数,这也将作为POST_DATA 的一部分。 这样, 就不能用通常的那种简单方法来模拟POST 登录( 比如 人人网 )。 由于要用的一部分微博数据用API获取不方便, 所以还是要自己写个小爬虫, 模拟登录是必不可少的。琢磨了一下这个东西,最终登录成功。 1, 在提交POST请求之前, 需要GET 获取两个参数。 http://login.sina.com.cn/sso/login.php?client=ssologin.js (v1.3.18) 2, 通过httpfox 观察POST 的数据, 参数较复杂,其中 “su" 是加密后的username, "sp"是加密后的password。"servertime" 和 ”nonce" 是上一步得到的。其他参数是不变的。 http://weibo.com/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&retcode=101&reason=%B5%C7%C2%BC%C3%FB%BB%F2%C3%DC%C2%EB%B4%ED%CE%F3 "); 这是登录失败时的结果, 登录成功后结果与之类似, 不过retcode

python(十五):Django之HttpRequest

匿名 (未验证) 提交于 2019-12-02 22:11:45
  当一个请求连接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的视图函数。每个请求的视图函数都会返回一个HttpResponse。   HttpRequest和HttpResponse可以从django.http中导入。   1、HttpRequest类 HttpRequest . scheme 请求协议(http或者https) HttpRequest. body 以字节的方式返回请求体内容;可以通过HttpRequest.POST获取处理后的key和value,也可以通过HttpRequest.read()格式化 HttpRequest. path 返回请求的完整路径,不包括协议和域名 HttpRequest. GET GET请求参数,返回一个queryDict对象 HttpRequest. POST 获取表单提交的数据,如果是通过POST请求提交的其它非表单数据,可以使用HttpRequest.Body获取;使用时可以通过if request.method == "PSOT"来进行预判断 HttpRequest .method 返回请求方式 HttpRequest. environ 返回一个字典,包含所有django运行的环境信息 HttpRequest. content_type 文件格式