无法在Azure上使用Python部署REST API

时间:2017-11-21 10:36:22

标签: python rest azure flask azure-web-app-service

我正在尝试部署简单的Azure Web应用程序。我完全按照这里描述的那样创建它

https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-python

但是替换了 main.py 中的代码以及(当然更新 requirements.txt ):

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


app = Flask(__name__)
api = Api(app)
todos = {}


class HelloWorld(Resource):
    def get(self):
        return {'hello': 'world'}


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(HelloWorld, '/')
api.add_resource(TodoSimple, '/<string:todo_id>')


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

本地一切正常,但部署版本存在问题:

- http://my-app-name-here.azurewebsites.net很好,按预期打印{'hello':'world'}

- 无法访问TodoSimple提供的其他命令。

例如关注查询

curl http://my-app-name-here.azurewebsites.net/todo -d "data=Remember the milk" -X PUT

会导致“您要查找的资源已被删除,其名称已更改,或暂时不可用”。响应。

更新:在本地运行时一切正常

$curl http://localhost:5000/todo -d "data=Remember the milk" -X PUT
{
    "todo": "Remember the milk"
}

有没有人知道我在这个应用程序部署中缺少什么?

没有flask_restful的

Update2:方法也不起作用:

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, World!'


@app.route('/data')
def get_data():
    return 'The data.'


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

调用http://my-app-name-here.azurewebsites.net/data会导致“您要查找的资源已被删除,名称已更改或暂时无法使用。”再次留言。

0 个答案:

没有答案