Python Flask-restful 多个 api 端点
Python Flask-restful multiple api endpoints
如何查看使用了哪条路由?
将@api 与 Flask-restful 和 Python 一起使用,目前我没有通过检查 api.endpoint
值以干净的方式进行操作。
如何正确操作?
@api.route('/form', endpoint='form')
@api.route('/data', endpoint='data')
class Foobar(Resource):
def post(self):
if api.endpoint == 'api.form':
print('form')
elif api.endpoint == 'api.data':
print('data')
编辑:
我应该把它分成两个 类 吗?
我绝不是烧瓶专业人士,所以请对我的回答持保留态度。首先,我肯定会把它分成 2 个不同的 类 只是为了更好地了解你在做什么。同样根据经验,我总是会拆分 api 并编写自己的逻辑以获得更高的粒度。
其次如果你想看看https://flask-restful.readthedocs.io/en/latest/api.html#flask_restful.Api.owns_endpoint。这可能对您有所帮助。
我是 python 和烧瓶的新手。
我认为类似下面的内容应该适合您:
from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class Data(Resource):
def post(self):
print("data")
return{"type": "data"}
class Form(Resource):
def post(self):
print("form")
return{"type": "form"}
api.add_resource(Form, '/form')
api.add_resource(Data, '/data')
if __name__ == "__main__":
app.run(port=8080)
您还为 类 使用单独的文件以获得更清晰的代码,例如:
form.py
from flask_restful import Resource
class Form(Resource):
def post(self):
print("form")
return{"type": "form"}
data.py
from flask_restful import Resource
class Data(Resource):
def post(self):
print("data")
return{"type": "data"}
services.py
from flask import Flask, request
from flask_restful import Api
from data import Data
from form import Form
app = Flask(__name__)
api = Api(app)
api.add_resource(Form, '/form')
api.add_resource(Data, '/data')
if __name__ == "__main__":
app.run(port=8080)
希望对您有所帮助。
如何查看使用了哪条路由?
将@api 与 Flask-restful 和 Python 一起使用,目前我没有通过检查 api.endpoint
值以干净的方式进行操作。
如何正确操作?
@api.route('/form', endpoint='form')
@api.route('/data', endpoint='data')
class Foobar(Resource):
def post(self):
if api.endpoint == 'api.form':
print('form')
elif api.endpoint == 'api.data':
print('data')
编辑:
我应该把它分成两个 类 吗?
我绝不是烧瓶专业人士,所以请对我的回答持保留态度。首先,我肯定会把它分成 2 个不同的 类 只是为了更好地了解你在做什么。同样根据经验,我总是会拆分 api 并编写自己的逻辑以获得更高的粒度。
其次如果你想看看https://flask-restful.readthedocs.io/en/latest/api.html#flask_restful.Api.owns_endpoint。这可能对您有所帮助。
我是 python 和烧瓶的新手。
我认为类似下面的内容应该适合您:
from flask import Flask, request
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
class Data(Resource):
def post(self):
print("data")
return{"type": "data"}
class Form(Resource):
def post(self):
print("form")
return{"type": "form"}
api.add_resource(Form, '/form')
api.add_resource(Data, '/data')
if __name__ == "__main__":
app.run(port=8080)
您还为 类 使用单独的文件以获得更清晰的代码,例如:
form.py
from flask_restful import Resource
class Form(Resource):
def post(self):
print("form")
return{"type": "form"}
data.py
from flask_restful import Resource
class Data(Resource):
def post(self):
print("data")
return{"type": "data"}
services.py
from flask import Flask, request
from flask_restful import Api
from data import Data
from form import Form
app = Flask(__name__)
api = Api(app)
api.add_resource(Form, '/form')
api.add_resource(Data, '/data')
if __name__ == "__main__":
app.run(port=8080)
希望对您有所帮助。