Flask: Python编写的轻量级Web应用程序框架

Flask: Python编写的轻量级Web应用程序框架

官方文档
中文文档

Get请求

  • URL 传值 参照博客
    flask.request.args.get获得参数值。

举例:前端请求URL为http://localhost:5000/log?datasetId=782973

@app.route("/log", methods=['get'])
def readLog():
    datasetId = flask.request.args.get("datasetId")
    global LOG_ROOT
    _dir = os.path.join(LOG_ROOT, "log")
    logName = str(datasetId) + ".log"
    try:
        filename = os.path.join(_dir, logName)
        if os.path.exists(filename):
        	return send_file(filename, as_attachment=True, attachment_filename=logName)
        else:
        	return "File Not Found!"
    except Exception as e:
        print(e)

Post请求

注意事项:

  • Body 传值
    flask.request.json 获得Json值
  • Flask异步实现 参考博客
    executor.submit

举例:

  1. 成功接收到Post消息的Response会直接发出。
  2. do_task函数,对接收到的参数进行处理,后续可再将处理结果Post出去。
executor = ThreadPoolExecutor(2)

@app.route("/", methods=["post"])
def do_Post():
    metadata_dict = flask.request.json
    callback = metadata_dict["callback"]
    datasetName = metadata_dict["datasetName"]
    datasetId = metadata_dict["datasetId"]

    executor.submit(do_task, callback,, datasetName, datasetId)
    data = {
        'code': 200,
        'message': 'message received'
    }
    return Response(json.dumps(data), mimetype='application/json')

服务端口

flask默认端口为5000,实际使用时可进行修改。

if __name__ == '__main__':
    app.run(host='192.168.0.0', debug=False, port=3115)

部分代码整合

from flask import Flask, Response, send_file
import flask

app = Flask(__name__)
executor = ThreadPoolExecutor(2)

@app.route("/log", methods=['get'])
def readLog():
    datasetId = flask.request.args.get("datasetId")
    global LOG_ROOT
    _dir = os.path.join(LOG_ROOT, "log")
    logName = str(datasetId) + ".log"
    try:
        filename = os.path.join(_dir, logName)
        if os.path.exists(filename):
        	return send_file(filename, as_attachment=True, attachment_filename=logName)
        else:
        	return "File Not Found!"
    except Exception as e:
        print(e)

@app.route("/", methods=["post"])
def do_Post():
    metadata_dict = flask.request.json
    callback = metadata_dict["callback"]
    datasetName = metadata_dict["datasetName"]
    datasetId = metadata_dict["datasetId"]

    executor.submit(do_task, callback,, datasetName, datasetId)
    data = {
        'code': 200,
        'message': 'message received'
    }
    return Response(json.dumps(data), mimetype='application/json')

if __name__ == '__main__':
    app.run(host='192.168.0.0', debug=False, port=3115)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值