ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python对外提供接口将数据放入rabbitmq

2022-06-21 16:05:07  阅读:122  来源: 互联网

标签:__ python app request rabbitmq param json 接口 print


  注意:1)并发量不太大的时候这样使用可以,如果并发较大建议还是用java进行实现。

     2)此处建议使用python3

# coding:utf-8
import json
import pika
from flask import Flask, request

app = Flask(__name__)

MY_URL = '/knowledge/api/v1/'

def push_mess(param):
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()
    channel.basic_publish(exchange='',
                      routing_key='myquence',
                      body=param)
    print("[knowledge] Send "+param)
    connection.close()
resu = {"code": 200,"result":"success!"}
# get
@app.route(MY_URL + 'get/tasks', methods=['GET'])
def get_task():
    param = request.args.to_dict()
    # print(param)  # request.args请求参数
    # print(type(param))
    # print(param)
    push_mess(json.dumps(param,ensure_ascii=False))        
    return json.dumps(resu, ensure_ascii=False)


# post
@app.route(MY_URL + 'post/tasks', methods=['POST'])
def post_task():
    param = request.args.to_dict()
    # print(param)  # request.args请求参数
    # print(type(param)) 此处post仅支持一般使用方法
    # print(param)
    push_mess(json.dumps(param,ensure_ascii=False))
    return json.dumps(resu, ensure_ascii=False)

    #解决请求跨域问题    
def after_request(resp):
    resp.headers['Access-Control-Allow-Origin'] = '*'
    return resp

if __name__ == '__main__':
    app.after_request(after_request)
    app.run(debug=True, host='0.0.0.0', port=5000)
    # app.run(debug=True)  host 0.0.0.0设置是都可以进行访问,port为对应内网端口
# http://127.0.0.1:5000/knowledge/api/v1/get/tasks?keystr=服务器上架&topN=3

  注意导入相关类库,rabbitmq此处默认使用guest用户,密码也是初始状态。如果需要使用其他用户端口,可查看ConnectionParameters设置的相关参数介绍。mq队列相关设置建议先用ui界面设置好。

  后续采用ck订阅消费请查看:https://www.cnblogs.com/MrYang-11-GetKnow/p/16397055.html。

标签:__,python,app,request,rabbitmq,param,json,接口,print
来源: https://www.cnblogs.com/MrYang-11-GetKnow/p/16397122.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有