【问题标题】:Python Flask, connect another urlPython Flask,连接另一个 url
【发布时间】:2017-05-10 10:41:21
【问题描述】:

我将我的需求简化为这个简单的代码

from flask import Flask, request
import requests

app = Flask(__name__)

@app.route('/', methods=['POST'])
def root():
    payload = {'Message': 'yo','Port':'123'}
    r = requests.post("http://127.0.0.1:5000/test", data=payload)
    return r.text


@app.route('/test', methods=['POST'])
def test():
    return request.form['Message']+','+request.form['Port']

if __name__ == '__main__':
    app.run(debug=True)

我已经通过谷歌的 Postman 测试了 url '127.0.0.1:5000/test'。
我将数据发送到 url,它成功了,可以返回我想要的结果。

我还创建了另一个 .py 来测试 url。它也可以显示我想要的结果。

import requests

payload = {'Message':'yo','Port':'123'}
r = requests.post("http://127.0.0.1:5000/test", data=payload)
print r.text

然后我把同样的代码放在下面

@app.route('/', methods=['POST'])
def root():

我想使用 url '127.0.0.1:5000/' 向 '127.0.0.1:5000/test' 发送数据(我也使用 google 的 Postman)
而且它不能工作......它总是显示'正在加载......'

有没有更好的方法来实现我的要求?
我会非常感谢你的~!!

【问题讨论】:

  • threaded=True 添加到app.run()

标签: python url flask flask-restful


【解决方案1】:

与其发送一个本地的POST 请求(这会花费更长的时间),不如让它们都路由到同一个函数,并设置默认值。

@app.route('/', methods=['GET'])
@app.route('/test', methods=['POST'])
def test():
    return request.form.get('Message', 'yo') + ',' + request.form.get('Port', '123')

这将正常响应/test 上的所有 POST 请求,并且使用 GET 到 /,它的工作原理与将 {'Message': 'yo', 'Port': '123'} 发布到 /test 相同

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多