python3通过flask构建服务化小例子

59bdfd21e0f9395083fb39e718dc45d4.png

前言

很多功能为了调用的方便,我们都会打包成一个服务,通过请求来调用服务端的函数或者功能代码。

这里主要是给出常用flask框架的一个小例子

有两部分代码:

  1. server 服务端

  2. client 请求端

主要实现 python3用flask实现服务,get和post请求,传输json字符串,以及返回md5随机数等

具体看代码吧,也是模版,一看就知道怎么仿照来写来用了。

主要需要自己设计的地方是不一样的route对应于不同功能的模块,每个模块对应于不同的传入request data的格式,主要还是以json或者byte格式传输。

代码

server.py

import os
import sys

curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

from flask import Flask, request
import hashlib
import json
import time


def __make_random_id__():
    src = 'filed_46546546464631361sdfsdfgsdgfsdgdsgfsd' + str(time.time())
    m1 = hashlib.md5()
    m1.update(src.encode())
    return m1.hexdigest()


app = Flask(__name__)


# 装饰器的作用是将请求http://ip:端口/che的路由映射到函数def get()上去
@app.route('/che', methods=['GET'])
def get():
    if request.method == 'GET':
        print('get')
        return "get request success"


@app.route('/woniu', methods=['POST'])
def post():
    if request.method == 'POST':
        print("post")
        response_data = request.json.get('data')
        nums = response_data['nums']
        return_data = json.dumps({
            'nums': str(nums - 1),
            'id': __make_random_id__()
        })
        return return_data


if __name__ == '__main__':
    app.run(host="0.0.0.0", port=8000, threaded=True)

client.py

import requests

if __name__ == '__main__':
    # get 请求
    url = "http://localhost:8000/che"
    r = requests.get(url)
    print(r.text)

    # post 请求
    url = "http://localhost:8000/woniu"
    data = {"nums": 1024}
    r = requests.post(url, json={"data": data})
    print(r.text)

结果

执行服务器代码,之后运行起来服务再执行客户端代码,模拟服务在running,client发请求

server 运行:a52455b1e3862f9ba480cd6c312e4d2a.png

client 运行:

cd0cbddda8a2378ffc944dc17a7da682.png
推荐阅读:

我的2022届互联网校招分享

我的2021总结

浅谈算法岗和开发岗的区别

互联网校招研发薪资汇总
2022届互联网求职现状,金9银10快变成铜9铁10!!

公众号:AI蜗牛车

保持谦逊、保持自律、保持进步

发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
发送【1222】获取一份不错的leetcode刷题笔记

发送【AI四大名著】获取四本经典AI电子书

猜你喜欢

转载自blog.csdn.net/qq_33431368/article/details/131027502