2016-03-23 8 views
1

フラスコ管理者を使用しています。ホームページにダッシュボードを追加します。Flask-Adminを使用してインデックスページにコンテンツを追加する方法

admin.init_app(app) 

、最終的に私はmy_master.htmlを追加し、コンテンツを追加しました:その後、

admin = Admin(name='Dashboard', base_template='admin/my_master.html', template_mode='bootstrap3') 

:私は、私が使用して新しいページを追加することができました。しかし、それはすべて静的です、どのように私はそのビューにカスタムデータを追加できますか?

答えて

4

私は、マニュアルで答えを見つけました:http://flask-admin.readthedocs.org/en/latest/api/mod_base/

それは管理コンストラクタに独自のビュークラスを渡すことによってオーバーライドできます

class MyHomeView(AdminIndexView): 
    @expose('/') 
    def index(self): 
     arg1 = 'Hello' 
     return self.render('admin/myhome.html', arg1=arg1) 

admin = Admin(index_view=MyHomeView()) 

また、ルートURLを/ adminから/に変更することができます。

インデックス・ページ用
admin = Admin(
    app, 
    index_view=AdminIndexView(
     name='Home', 
     template='admin/myhome.html', 
     url='/' 
    ) 
) 

デフォルト値は次のとおりです。

  • 名が提供されていない場合は、「ホーム」は使用されます。
  • エンドポイントが指定されていない場合は、デフォルトの管理者になります。デフォルトのURLのルートは/ adminです。
  • 自動的に静的フォルダに関連付けられます。デフォルトのテンプレートはadmin/index.htmlです
+0

xhr/ajaxは、あなたがこれを読んでいる場合にはあなたのプロジェクトに最適なソリューションかもしれません。私はそれが私のダッシュボードでうまくいく別のオプションであることが分かった。 – nycynik

1

flask-admin documentation使用これによると:

from flask_admin import BaseView, expose 

class AnalyticsView(BaseView): 
    @expose('/') 
    def index(self): 
     return self.render('analytics_index.html', args=args) 

admin.add_view(AnalyticsView(name='Analytics', endpoint='analytics')) 
+1

これはデータをページに渡す方法を示していません。 – nycynik

関連する問題