簡體   English   中英

url_for用於Flask-Admin中基於類的視圖

[英]url_for for class-based views in Flask-Admin

我有一個基於類的管理員視圖:

class All_RDPs(BaseView):
    @expose('/')
    def index(self):
        return 'ok1'
    @expose('/test')
    def testindex(self):
        return 'ok2'

這是在Flask-Admin中注冊的,如下所示:

admin.add_view(All_RDPs(name='dep_rdp'))

然后可以從瀏覽器中查看,如下所示:

http://localhost/admin/all_rdps/
http://localhost/admin/all_rdps/test

問題是:

  1. 如何指定此類的URL而不是默認生成的名稱all_rdps
  2. 如何使用url_for為這些端點生成URL? url_for('admin.All_RDPs.testindex')url_for('admin.All_RDPs')不起作用。

您可以通過將endpoint參數傳遞給視圖類構造函數來覆蓋端點名稱:

 admin = Admin(app) admin.add_view(MyView(endpoint='testadmin')) 

在這種情況下,您可以通過將視圖方法名稱與端點連接來生成鏈接:

 url_for('testadmin.index') 

如果不覆蓋端點名稱,則可以使用小寫類名稱來生成URL,如:

 url_for('myview.index') 

對於基於模型的視圖,規則不同 - 如果未提供端點名稱,則應使用模型類名稱。 默認情況下,ModelView還具有以下端點:.index_view,.create_view和.edit_view。 因此,可以為名為“User”的模型生成以下URL:

 # List View url_for('user.index_view') # Create View (redirect back to index_view) url_for('user.create_view', url=url_for('user.index_view')) # Edit View for record #1 (redirect back to index_view) url_for('user.edit_view', id=1, url=url_for('user.index_view')) 

來源: Flask-Admin快速入門

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM