赞
踩
用falsk写一个服务,包含两个功能:
(1)加法服务:给定两个数值,计算其 和;
(2)乘法服务:给定的两个值,计算器 乘积;
from flask import Flask, request, jsonify from flask_cors import CORS import json app = Flask(__name__) @app.route('/sum', methods=['POST']) def f_sum(): a = json.loads(request.data)['a'] b = json.loads(request.data)['b'] result={"retcode": 1, "data": a + b } return json.dumps(result) @app.route('/multiply', methods=['get']) def f_multiply(): a = json.loads(request.data)['a'] b = json.loads(request.data)['b'] result = {"retcode": 1, "data": a * b } return json.dumps(result) if __name__ == "__main__": CORS(app=app, supports_credentials=True) app.run(host='0.0.0.0',port=8009,debug=True) ## 0.0.0.0表示本机IP
在本机上运行上述一段代码,会启动服务。然后运行下述请求服务代码,会得到结果。
import requests, json
## 调用 加法 服务
url = 'http://0.0.0.0:8009/sum'
h1 = requests.post(url=url_local, data=json.dumps({"a": 1, "b": 2}))
print(h1.text)
## 调用 乘法 服务
url = 'http://0.0.0.0:8009/multiply'
h1 = requests.get(url=url_local, data=json.dumps({"a": 1, "b": 2}))
print(h1.text)
(1)@app.route(’/sum’, methods=[‘POST’]) 的理解:
可以和调用函数对比来看:
‘/sum’对应调用服务的url的格式为’IP:PORT/sum’;
‘/multiply’对应调用服务的url格式为’IP:PORT/multiply’
methods为 POST或者GET差别不大,能起到几乎一样的功能,对应调用代码用requests.post还是 requests.get;
(2)关于代码中的IP地址:
第一段代码里面有个IP:PORT=‘0.0.0.0:8009’,意思是在本机(这段代码运行的机器)上的端口8009上提供服务;
第二段代码中的IP,是请求IP:0.0.0.0(这个IP指代本机IP)的8009端口的服务;
如果第一段代码运行在任意一台远程服务器上(IP假设IP=10.1.10.211,PORT=8009),要在自己笔记本上调用该服务。第一段代码中的IP都不变;第二段代码的调用的url改成 10.1.10.211:8009。
(1)用flask自带的日志接口
使用Flask APP自带的logger即可,加日志时在要加的位置加入一行:
# 假设 app = Flask(__name__)
app.logger.info("日志内容") # 其会在前面自动加上时间信息
(2)用flask自带的日志接口+python自带的logging把日志写到.log文件里
在flask服务文件里加上下面几句就会把日志写到flask.log文件里。
import logging
logging.basicConfig(level=logging.INFO, #控制台打印的日志级别
filename='flask.log',
filemode='a',##模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
#a是追加模式,默认如果不写的话,就是追加模式
format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
#日志格式
)
(3)与(2)类似,还可以用下述方法实现
handler = logging.FileHandler('flask.log')
flask_app.logger.addHandler(handler)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。