小程序与云服务器,小程序是通过如下2种方式与云服务器进行数据沟通的

上期文章我们分享了如何使用Python+Flask+Tornado+Nginx部署自己的web服务器,待我们部署完自己的小程序后,如何使用微信开发,或者头条开发自己的小程序?小程序如何跟服务费打交道,本期文章带你看http 的get 与post 方法

6dc39262b6ac29c0aa93b4cfd3afd278.png

http协议

在了解get和post之前,我们要先了解TCP/IP和http。简单来说,TCP/IP是网络架构,TCP/IP是五层网络架构(区分于OSI七层架构),TCP/IP自上而下分为应用层,传输层,网络层,数据链路层,物理层。Http是位于应用层的协议,TCP位于传输层(区别于UDP),IP是位于网络层的。简单来说,Http是基于TCP/IP的一种通信协议(超文本传输协议,所有www都必须遵循这个协议,你所看到的网页都是基于这个协议)。

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

get会产生一个TCP数据包,POST会产生两个TCP数据包。

get会发送http header和data给服务端,服务端返回一个200,请求成功。

post会先发送http header给服务端,告诉服务端等一下会有数据过来,服务端返回100,告诉客户端我已经准备接收数据,post在发送一个data给服务端,服务端返回200,请求成功。g

a99667d8a6439fb1ae4b5965c91003a9.png

无论是get请求或者post请求,都可以与云服务器沟通数据,只是在开发时,代码略有区别

代码实战

小程序的get请求

flask 的web服务,默认是get请求,首先我们设计服务器端的代码:

from flask import Flask, render_template, request, Response

app = Flask(__name__) @app.route('/login', methods=['GET'])

def login():

pwd = request.args.get('pwd')

username = request.args.get('username')

#username = request.form['username']

#pwd = request.form['pwd'] if username == '123'and pwd == '123': return '成功' else: return '失败' if __name__ == '__main__':

app.run()

我们按照最简单的登录验证的例子来讲述get 与post的区别

以上代码的意思是当有get请求/login 的url地址时,服务器来接受客户端传递的数据

接受数据使用request.args.get函数来接受

小程序端代码:

tt.request({

url: '127.0.0.1/login', //本地服务器地址

data: { 'pwd': '123', 'username':'123' },

method: 'GET',

header: { "Content-Type": "application/json" //默认值

},

success: function (res) { print(res.data)

}

})

微信小程序(wx.request)或者头条小程序(tt.request)都设计有request请求函数来处理url请数据请求

以上便是头条小程序端的代码设计,我们填写url的请求地址,请求的数据data,设计请求方式为get

设计请求的header

当请求完成后,服务器返回请求的数据给小程序,我们直接在sucess函数里面便可以打印服务器传递的数据res.data

有了服务器的数据,便可以 处理一些数据。

小程序的post请求

小程序的post请求,服务器端代码

from flask import Flask, render_template, request, Response

app = Flask(__name__)

@app.route('/login', methods=['POST']) def login(): username = request.form['username']

pwd = request.form['pwd'] if username == '123'and pwd == '123': return '成功' else: return '失败' if __name__ == '__main__':

app.run()

与get请求不同的是,请求方式设计为post,处理数据使用request.form函数

通过以上基础知识的了解,由于post请求是表单类的请求,这里获取数据自然使用form表单类函数

小程序端代码:

当然post请求,客户端的代码也稍微有所区别

tt.request({

url: '127.0.0.1/login', //本地服务器地址

data: { 'pwd': '123', 'username':'123' },

method: 'POST',

header: { 'content-type': 'application/x-www-form-urlencoded' },

success: function (res) { print(res.data)

}

})

通过以上代码,可以看到主要的区别是post请求的header与get的header不同

无论哪种请求方式,小程序都可以与服务器进行数据的交流沟通,当然,你也可以使用服务器上的数据库,关于python数据库的操作,小伙伴们可以参考往期的文章分享。

ok,通过以上的分享,广大小伙伴们可以自行尝试快速搭建自己 的服务器以及小程序,中间过程中若有不明白的可以相互沟通交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值