我正在尝试部署简单的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会导致“您要查找的资源已被删除,名称已更改或暂时无法使用。”再次留言。