【发布时间】: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