【问题标题】:Deploying test flask API in pythonanywhere在 pythonanywhere 中部署测试烧瓶 API
【发布时间】:2019-08-19 05:07:35
【问题描述】:

我正在尝试在 pythonanywhere 的烧瓶文档中部署示例烧瓶 API 应用程序。


from flask import Flask, request
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)


todos = {}

class TodoSimple(Resource):
    def get(self, todo_id):
        return {todo_id: todos[todo_id]}

    def put(self, todo_id):
        todos[todo_id] = request.form['data']
        return {todo_id: todos[todo_id]}

api.add_resource(TodoSimple, '/<string:todo_id>')

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

当我在 pycharm 本地测试这个应用程序时,我通过使用发送数据成功执行了应用程序

curl http://localhost:5000/todo1 -d "data=Remember the milk" -X PUT

pycharm 终端中的命令。

我得到的结果是

{ "todo1": "记住牛奶" }

但是当我使用 Postman 测试部署时,我得到的结果是

在服务器上找不到请求的 URL。如果您手动输入网址,请检查您的拼写并重试

在 Postman 的 Query params 中使用的参数有: 关键:数据 value:"记住牛奶"

在本地执行应用程序得到的结果是正确的结果。 我做错了什么?

PS: 使用 pythonanywhere 时,我使用了

http://www.mydomain.pythonanywhere.com

【问题讨论】:

  • 你在第二种情况下使用了什么网址?当然你必须使用 pythonanywhere url 而不是 localhost。
  • 是的,我做到了。对不起,如果我不清楚。当我使用 'mydomain.pythonanywhere.com' 时引起的上述错误
  • 是的@Ardweaden。我在使用部署时所做的不同是使用我的域 url 和使用邮递员发送请求。
  • 您确定您使用的网址正确吗?上面您确认您使用了mydomain.pythonanywhere.com/todo1,但您已经编辑了您的问题,说您使用了www.mydomain.pythonanywhere.com/todo1。第二个网址不行,你需要使用第一个。

标签: python api flask postman pythonanywhere


【解决方案1】:

数据必须在“正文”选项卡中发送,而不是在“参数”选项卡中。

【讨论】:

    【解决方案2】:

    您需要将 http://localhost:5000/ 替换为 pythonanywhere 中的 url,例如 http://yourusername.pythonanywhere.com 那是假设您没有支付和配置自己的域

    【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2019-02-21
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 2019-02-10
    • 2018-11-09
    相关资源
    最近更新 更多