python flask的简单应用

看过很多flask的教程,感觉都很复杂,很多时候我的需求就是非常简单的小应用,用不到非常高级的功能

 

首先来讲,下面就是一个简单的初始化,8070是端口号,请求的时候会用到,之所以不用一些常用的,是因为太常用的,在使用过程中可能会接到其他程序发的请求,会有点烦

from flask import Flask, request

app = Flask(__name__)
if __name__ == '__main__':
    # Bind to PORT if defined, otherwise default to 5000.
    port = int(environ.get('PORT', 8070))
    app.run(host='0.0.0.0', threaded=True, port=port)

有了上面那段之后,然后就是定义一个函数,类似下面这样的

@app.route('/detect', methods=["GET", "POST"])
def detectRock():
    if request.method == 'POST':
        print("----")

这个函数就是供别人请求时调用的,重点就在于“@app.route('/detect'”这个装饰器上,这个“/detect”就是你的请求地址,假设你的电脑ip是“11.22.33.44”,那别人想进入这个函数,就是“http://121.36.10.155:8070/detect”,所以想要换一个地址的话,就是在这个@app.route里面换

以上是服务端,客户端具体的请求如下

import urllib
import urllib.request as urllib2
from urllib import parse

url_preffix = "http://11.22.33.44:8070"

def setParams(array, key, value):  # 字典构成函数
    array[key] = value

def test():
    dataDict = {}
    setParams(dataDict, "method", "set")
    url_data = parse.urlencode(dataDict).encode("utf-8")
    req = urllib2.Request(url_preffix+"/detect", url_data)
    rsp = urllib2.urlopen(req, timeout=300)
    return rsp

这样就是传到服务端的detect那个方法里面了,并且传了一个参数,由于falsk的方法有很多种调用还有传值等方法,这里只是我个人比较喜欢的方法

服务端如何获取这个参数呢

@app.route('/detect', methods=["GET", "POST"])
def test():
    global root
    if request.method == 'POST':
        fd = request.form.to_dict()
        if "method" in fd:
            method = fd["method"]
        else:
            return jsonify({"ret":-1, "msg":"传参错误"})

这样就可以得到传递过去的一个字典,这里还演示了一个如何返回值,使用jsonify,返回一个字典回去,这样就比较方便。

客户端得到这个数据,也就是上面那个rsp之后,怎么查看呢

str_rsp = rsp.read()
rsp.close()
dict_rsp = json.loads(str_rsp)

这样一个变换之后,就变成字典了,就可以查看数据了

 

 

有了以上这些,一个基本的服务端和客户端就能够使用了,能够满足简单的客户端向服务端请求数据,不用讲理论,别理解,去感受

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值