post请求

Django视图

和自甴很熟 提交于 2020-01-29 11:24:30
Django中视图的功能: 接收请求,进行处理,与M和T进行交互,返回应答 返回html内容HttpResponse、重定向页面redirect、json数据及异常等 1. 视图函数 定义视图函数:参数:request(必须),返回一个HttpResponse类型的对象或者HTTP404异常(参数名可以自定义不建议修改) URL配置:建立URL与视图函数之间的对应关系 URL配置 在项目的urls文件中包含具体应用的urls文件,在具体应用的urls文件中包含具体url和视图的对应关系 url配置项定义在一个名叫urlpatterns的列表中,其中的每一个元素就是一个配置项,每一个配置项都调用url函数(高版本使用path、re_path函数) url匹配过程: 注意: 匹配成功调用视图函数产生内容返回客户端,匹配失败产生404异常 不能在开始加反斜杠,推荐在结束加反斜杠 内置错误视图 404:找不到页面(请求的URL没有配置或者配置错误) - 关闭调试模式之后,默认会显示一个标准的错误页面,如果要显示自定义的页面,则需要的templates目录下面自定义一个404.html文件 - 默认情况下Django会向404.html文件传递一个参数:request_path(请求的路径) 500:服务器端错误(视图函数内部执行出错) - 默认会显示一个标准的500服务器错误页面

Web阶段性技术文档(三)

眉间皱痕 提交于 2020-01-29 05:31:03
一、Ajax设置请求和接收响应 1 、JS设置任意请求 一个http请求分为四个部分 请求行,请求头,回车,请求体 设置请求的四个部分 (第三部分为回车): 第一部分 request.open('get', '/xxx') 第二部分 request.setRequestHeader('content-type','x-www-form-urlencoded') 第四部分 request.send('a=1&b=2') request.setRequestHeader()方法需要注意的是此方法必须 在 open() 方法和 send() 之间调用 。 XMLHttpRequest.setRequestHeader() 另外需要注意的是,如果设置西请求方法为get 并且设置了请求体(第四部分),在谷歌浏览器中看不到请求体,不报错但是不显示 示例代码: myButton.addEventListener("click",(e)=>{ let request = new XMLHttpRequest(); request.open('POST','/xxx')// 配置request // 设置第二部分 request.setRequestHeader("mataotao","123123xxx") request.setRequestHeader('content-type','x

PHP APP端支付宝支付

試著忘記壹切 提交于 2020-01-29 01:27:48
应业务需求,做了支付宝支付和微信支付,今天分享一下手机端app支付宝支付对接流程,实际开发过程是前后端分离,前端调用后端API接口,实现功能返回数据,我所用的跨挤啊为TP5,大致可以分为四步: 1.在 蚂蚁金服开放平台 创建应用,签约商户,生成应用公钥和私钥; 2.配置统一下单支付参数; 3.整合支付宝demo类文件; 4.创建Alipay支付类,类内创建两个方法(alipay_app:统一下单方法和alipay_notify:支付成功异步回调方法); 第一步主要是在蚂蚁金服开放平台登录你的支付宝账号,接入支付功能,个人就选个人,服务商就选服务商,需要填写一些材料,如手机号,邮箱等,完成后就可以创建应用啦,创建应用完成后需要进行签约,只有签约之后你应用里面开放的支付功能才会生效,签约也需要填一堆信息,签约需要审核,成功后你会拿到一个2088开头partner值,这个第三步配置参数的时候需要用到,之后还要为你的应用生成公钥和私钥,这点在 开放平台开发文档 中有详细描述,下载生成秘钥工具,选择对应的秘钥类型,秘钥和公钥一定要保存好,这里就不多做赘述啦,到此开放平台的准备工作就结束了。 第二步就是整合支付宝demo文件了,我这里已经整合好了,直接把代码复制到两个文件中就可以了,一个为支付类,一个为通知类: /*此为支付类*/ class AlipayApp{ /** * 把数组所有元素

Web接口测试-HttpClient

亡梦爱人 提交于 2020-01-28 13:44:12
要实现Web接口测试的自动化有许多方式,比如利用Jmeter、Loadrunner等测试工具都能够实现接口的自动化测试,我们也可以利用一些开源的框架来实现接口的自动化测试,比如我们现在要说的这个HttpClient,   HttpClient是一个功能丰富支持HTTP协议的客户端编程工具包,具备以下主要功能:   1)封装实现了所有HTTP的方法,如GET,POST,PUT,HEAD   2)支持redirect,会话保持   3)支持文件上传 它是Apache下面开发的,更多信息大家可以上官网瞅瞅。 既然谈到了接口测试,首先我们得明白何为接口测试,简单一句话啊就是 测试外部系统 与 内部系统 或 一个系统中不同的功能模块 之间的交互点,我们测试的重点是检查数据的交换、传递、控制管理的过程,以及系统间的相互的逻辑依赖关系。 利用HttpClient我们做的接口测试主要是服务器端与客户端交互的方式,即浏览器或其它客户端与Web服务器之间的交互协议,这里讲的主要是HTTP协议,Http协议常用的请求方法有 Post 和 Get, 一般情况下从客户端传向服务器端的用Post, 从服务器端传出的用Get方法,这些都是一般情况下,测试的过程中还得具体情况具体分析。 顺便插一嘴,我们看看采用Get和Post方法来提交表单时的区别,明白了Get和Post的区别以后

Rails3 Route 用法集锦

ぐ巨炮叔叔 提交于 2020-01-28 07:50:56
默认路由: Ruby代码 # Rails3: match '/:controller(/:action(/:id))' # Rails2: map.connect ':controller/:action/:id' 正则路由: Ruby代码 # Rails3: match 'products/:id' , :to => 'catalog#view' # Rails2: map.connect 'products/:id' , :controller => 'catalog' , :action => 'view' 命名路由: Ruby代码 # Rails3: match 'logout' , :to => 'sessions#destroy' , :as => 'logout' # Rails2: map.logout 'logout' , :controller => 'sessions' , :action => '' 根路由: Ruby代码 # Rails3: root => 'welcome#show' # Rails2: map.root :controller => 'welcome' , :action => 'show' 路由简写技巧: :to 键的省略: Ruby代码 match 'account' => 'account#index' # 相当于: match

理解HTTP幂等性,分布式事物

浪尽此生 提交于 2020-01-27 05:44:14
理解HTTP幂等性 基于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

Restful API设计规范

最后都变了- 提交于 2020-01-27 02:30:28
理解RESTful架构 Restful API设计指南 理解RESTful架构 越来越多的人开始意识到,网站即软件,而且是一种新型的软件。 这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。 网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。 RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。 但是,到底什么是RESTful架构,并不是一个容易说清楚的问题。下面,我就谈谈我理解的RESTful架构。 一、起源 REST这个词,是 Roy Thomas Fielding 在他2000年的 博士论文 中提出的。 Fielding是一个非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者、Apache服务器软件的作者之一、Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了关注,并且立即对互联网开发产生了深远的影响。 他这样介绍论文的写作目的: "本文研究计算机科学两大前沿----软件和网络----的交叉点。长期以来

Django框架

╄→尐↘猪︶ㄣ 提交于 2020-01-26 23:56:47
返回主目录: Django框架 内容目录: 1.pycharm连接数据库及相应操作 2.手撸登录注册编辑删除 2.1 登录、注册 2.2 ORM简单操作 2.3 编辑、删除 3. 完整代码 一、pycharm连接数据库及相应操作 此处附上链接地址:https://www.cnblogs.com/xt12321/p/10992542.html 二、手撸登录注册编辑删除 2.1 登录、注册 (1)登录 1> 先在urls.py里面添加路由设置 2> 再在视图层 view.py里面定义login的处理逻辑 3> 在templates文件夹里面,添加上login.html文件 这样三步下来之后,便可以在本机上访问本地的登录界面 urls.py文件 --> urlpatterns中添加路由: url(r'^login/', views.login), views.py文件 --> 处理路由逻辑 # 如果请求方式是POST 表示是请求登录的操作 # 先去数据库拿数据,再匹配密码是否正确, # 不正确则进行提示,并返回登录页,正确则进入图书列表界面 # 如果请求方式是GET,那么则直接返回登录界面回去就可以了 ps:有一个问题就是: 当导入的js文件就是服务器本地的文件的时候,会报错, 需要在settings.py里面设置STATICFILES_DIRS STATICFILES_DIRS = [

#HTTP协议学习# (十一)理解HTTP幂等性

与世无争的帅哥 提交于 2020-01-26 11:18:53
在httpcomponent 文档中看到如下段落: 1.4.1. HTTP transport safety It is important to understand that the HTTP protocol is not well suited to all types of applications. HTTP is a simple request/response oriented protocol which was initially designed to support static or dynamically generated content retrieval. It has never been intended to support transactional operations. For instance, the HTTP server will consider its part of the contract fulfilled if it succeeds in receiving and processing the request, generating a response and sending a status code back to the client. The server will make no attempt

Ajax GET and POST封装

时光怂恿深爱的人放手 提交于 2020-01-26 08:30:24
function Ajax ( obj ) { //1.创建对象 var xhr = new XMLHttpRequest ( ) ; //判断get or post if ( obj . method . toUpperCase ( ) == "GET" ) { //2.连接 url = obj . data ? obj . url + "?" + obj . data : obj . url ; //请求参数,如果有就拼接到后面 xhr . open ( obj . method , url ) ; //默认是true 异步 //3.发送请求 xhr . send ( ) ; } else { xhr . open ( obj . method , obj . url ) ; //默认是true 异步 xhr . setRequestHeader ( "Content-type" , "application/x-www-form-urlencoded" ) ; xhr . send ( obj . data ) ; } //4.监听 xhr . onreadystatechange = function ( ) { if ( xhr . readyState == 4 ) { if ( xhr . status == 200 ) { obj . success && obj