【问题标题】:flask python requests post using JSON data to localhost [duplicate]烧瓶python请求使用JSON数据发布到本地主机[重复]
【发布时间】:2019-01-05 03:42:39
【问题描述】:

我正在尝试使用对本地主机中我自己的 API 的请求发布请求。 API 用于创建用户。问题是,当我尝试使用 Swagger UI 时,它可以工作,但是当我尝试使用 HTML 表单时,页面总是给我永无止境的加载。

这是我的查看代码:

    url = "http://localhost:5000/api/user/"
    email = request.form.get('email')
    username = request.form.get('username')
    password = request.form.get('password')
    jsondata = {
        "email": email,
        "username": username,
        "password": password
    }
    req = requests.post(url, json=jsondata)
    return redirect(url_for('main.main'))

这里是 API(使用 Flask_restplus)

def post(self):
    data = api.payload
    return save_new_user(data) # store the data to database

这里有什么问题?谢谢之前

【问题讨论】:

    标签: python flask python-requests flask-restplus


    【解决方案1】:

    使用data参数请求post并且没有json参数,请在你的视图上尝试以下代码。

    import json,requests
    url = "http://localhost:5000/api/user/"
    .....
    data = json.dumps(jsondata)
    req = requests.post(url, data=data)
    .....
    

    下面是flask-restplus的代码

    #if using swagger model
    def post(self):
        data = api.payload
        return save_new_user(data)
    ============================================
    
    #if not using swagger model
    from flask import request
    def post(self):
        data = request.get_json()
        return save_new_user(data)
    

    【讨论】:

    • 仍然有同样的问题。还有其他建议吗?奇怪的是,当我使用差异 url [一个来自请求 python doc] 时,它可以工作。我的 API 有问题吗?但为什么?当我从 Swagger UI 进行测试时,它工作正常。
    【解决方案2】:

    好的,我找到了答案。 Flask 不能一次处理多个请求。 这是链接

    Github

    【讨论】:

    • 如果你启用线程(在最近的 Flask 版本中默认启用),它就可以了,否则内置 development WSGI 服务器的限制。无论如何,您都不想将其用作生产服务器。查看副本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    • 2021-12-30
    • 2014-07-23
    • 1970-01-01
    • 2022-01-25
    • 2017-08-24
    • 2023-03-08
    相关资源
    最近更新 更多