当前位置:   article > 正文

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

python服务化

59bdfd21e0f9395083fb39e718dc45d4.png

前言

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

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

有两部分代码:

  1. server 服务端

  2. client 请求端

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

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

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

代码

server.py

  1. import os
  2. import sys
  3. curPath = os.path.abspath(os.path.dirname(__file__))
  4. rootPath = os.path.split(curPath)[0]
  5. sys.path.append(rootPath)
  6. from flask import Flask, request
  7. import hashlib
  8. import json
  9. import time
  10. def __make_random_id__():
  11.     src = 'filed_46546546464631361sdfsdfgsdgfsdgdsgfsd' + str(time.time())
  12.     m1 = hashlib.md5()
  13.     m1.update(src.encode())
  14.     return m1.hexdigest()
  15. app = Flask(__name__)
  16. # 装饰器的作用是将请求http://ip:端口/che的路由映射到函数def get()上去
  17. @app.route('/che', methods=['GET'])
  18. def get():
  19.     if request.method == 'GET':
  20.         print('get')
  21.         return "get request success"
  22. @app.route('/woniu', methods=['POST'])
  23. def post():
  24.     if request.method == 'POST':
  25.         print("post")
  26.         response_data = request.json.get('data')
  27.         nums = response_data['nums']
  28.         return_data = json.dumps({
  29.             'nums': str(nums - 1),
  30.             'id': __make_random_id__()
  31.         })
  32.         return return_data
  33. if __name__ == '__main__':
  34.     app.run(host="0.0.0.0", port=8000, threaded=True)

client.py

  1. import requests
  2. if __name__ == '__main__':
  3.     # get 请求
  4.     url = "http://localhost:8000/che"
  5.     r = requests.get(url)
  6.     print(r.text)
  7.     # post 请求
  8.     url = "http://localhost:8000/woniu"
  9.     data = {"nums"1024}
  10.     r = requests.post(url, json={"data": data})
  11.     print(r.text)

结果

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

server 运行:a52455b1e3862f9ba480cd6c312e4d2a.png

client 运行:

cd0cbddda8a2378ffc944dc17a7da682.png
  1. 推荐阅读:
  2. 我的2022届互联网校招分享
  3. 我的2021总结
  4. 浅谈算法岗和开发岗的区别
  5. 互联网校招研发薪资汇总
  6. 2022届互联网求职现状,金910快变成铜910!!
  7. 公众号:AI蜗牛车
  8. 保持谦逊、保持自律、保持进步
  9. 发送【蜗牛】获取一份《手把手AI项目》(AI蜗牛车著)
  10. 发送【1222】获取一份不错的leetcode刷题笔记
  11. 发送【AI四大名著】获取四本经典AI电子书
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/191307
推荐阅读
相关标签
  

闽ICP备14008679号