2
我使用的瓶基於類的意見,使用add_url_rule
像這樣創建一個CRUD REST API和註冊路線...重寫瓶add_url_rule路由特定的URL
class GenericAPI(MethodView):
def get(self, item_group, item_id):
...
def post(self, item_group, item_id):
...
...
api_view = GenericAPI.as_view('apps_api')
app.add_url_rule('/api/<item_group>', defaults={'item_id': None},
view_func=api_view, methods=['GET',])
app.add_url_rule('/api/<item_group>/<item_id>',
view_func=api_view, methods=['GET',])
app.add_url_rule('/api/<item_group>/add',
view_func=api_view, methods=['POST',])
app.add_url_rule('/api/<item_group>/<item_id>/edit',
view_func=api_view, methods=['PUT',])
app.add_url_rule('/api/<item_group>/<item_id>/delete',
view_func=api_view, methods=['DELETE',])
它處理特定的數據庫基於item_group
的表和使用item_id
的條目。所以如果我有/api/person
,它會列出人物表的條目。或者如果我有/api/equipment/2
,它將在設備表中檢索ID爲2的行。我有很多這些任務,他們都只需要CRUD。
但是,如果我想要覆蓋我的路由時,如果我有其他一些URL,如/api/analysis/summarize
這理論上會調用一個功能,即時工作。有沒有辦法做到這一點?
或者是將我的網址擴展爲/api/db/person
和/api/db/equipment/2
以進行一組操作並將/api/other_work_type
分配給其他人的唯一方法?
我重讀的文件,發現可以使用'defaults'傳遞值。所以我最終做的不是'app.add_url_rule('/ api//',view_func = api_view,methods = ['GET',])'我把它改成了'app.add_url_rule('/ api/person/',view_func = api_view,methods = ['GET',])' –
kentwait