Flask-Admin是一個功能齊全、簡單易用的Flask擴展,讓你可以為Flask應用程序增加管理界面。它受django-admin包的影響,但用這樣一種方式實現,開發者擁有最終應用程序的外觀、感覺和功能的全部控制權。
本文是關于Flask-Admin庫的快速入門。本文假設讀者預先具有一些Flask框架的知識。
介紹
這個庫打算做到盡可能的靈活。并且開發者不需要任何猴子補丁就可以獲得期望的功能。
這個庫使用一個簡單而強大的概念——管理部件(administrative pieces,不太好翻譯),是用視圖方法構建的類。
例如,這是一個絕對有效的管理部件:
class MyView(BaseView): @expose('/') def index(self): return self.render('admin/myindex.html') @expose('/test/') def test(self): return self.render('admin/test.html')
如果用戶訪問index視圖,模板文件admin/myindex.html會被渲染。同樣的,訪問test視圖的結果是admin/test.html被渲染。
那么,這個方法怎樣幫助管理界面的結構化?使用這些已建立的部件,你可以實施高度定制化的可重復使用的功能。
例如,Flask-Admin提供一個現成的SQLAlchemy模型接口。它以類執行并接受2個參數:模型類和數據庫會話。當它顯示一些改變接口的行為的類級變量(有點像django.contrib.admin),沒有任何東西阻止你繼承它并覆蓋表單創建邏輯、數據庫存儲方法或者通過增加更多的視圖擴展現有的功能。
初始化
要開始使用Flask-Admin,你需要創建一個Admin類實例并和Flask應用程序實例關聯。
from flask import Flaskfrom flask.ext.admin import Admin app = Flask(__name__) admin = Admin(app)# Add administrative views here app.run()
如果你運行這個程序并訪問http://localhost:5000/admin/,你會看到一個頂部有導航欄的空的“Home”頁面:
你可以更換應用程序名稱通過傳值給Admin類構造函數的name參數:
admin = Admin(app, name='My App')
作為一個選擇方案,在Admin實例初始化之后,你可以調用init_app()函數把Flask應用程序對象傳給Admin構造函數:
admin = Admin(name='My App')# Add views hereadmin.init_app(app)
增加視圖
現在,讓我們增加一個管理視圖。下面的例子會致使兩個項目出現在導航菜單:Home和Hello。為此,你需要衍生于BaseView類:
新聞熱點
疑難解答