Python Flaskrestful多个api端点

2024-04-19 09:01:10 发布

您现在位置:Python中文网/ 问答频道 /正文

如何检查已使用的路线?在

目前在flaskrestful和Python中使用@api时,我并没有通过检查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')

编辑:

我应该把它分成两个班吗?在


Tags: selfformapidatadef方式路线post
2条回答

我是新来的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)

此外,您还为类使用了单独的文件,以获得更干净的代码,如:

在表单.py在

^{pr2}$

在数据.py在

from flask_restful import Resource


class Data(Resource):
    def post(self):
        print("data")
        return{"type": "data"}

在服务.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并编写自己的逻辑以获得更高的粒度。在

第二,如果您想看一下https://flask-restful.readthedocs.io/en/latest/api.html#flask_restful.Api.owns_endpoint。这可能对你有帮助。在

相关问题 更多 >