用flask-admin寫一個文件管理系統的程序-第1課

Flask-Admin 後臺管理

Flask-Admin是一個簡單易用的Flask擴展,可以爲Flask應用程序增加管理界面。

1、安裝擴展

先用pip 安裝flask-admin擴展 pip install flask-admin

2、有點不同的是,import時,是import:    flask.ext.admin   或者import flask_admin

第一個manage.py,或者helloadmin.py

from flask import Flask

from flask_admin import Admin, BaseView, expose

app = Flask(__name__)

admin = Admin(app,name='後臺管理系統')

app.run()

這裏把name加上了,會看見一個標題。

運行它 python manage.py,  在瀏覽器地址欄輸入localhost:5000/admin 或者把localhost替換爲127.0.0.1,可以看見一個光禿禿的運行界面如上圖。

3、加點東西(標籤)

現在,創建一個新的index.html文件並寫入如下內容:

{% extends 'admin/master.html' %}
{% block body %}
    Hello World from MyView!
{% endblock %}

然後把它放到templates目錄。爲維持一致的外觀和感覺,所有管理頁面應該延伸於admin/master.html模板。

目錄結構是:

manage.py

templates-index.html

再次運行程序,刷新,現在應該看到Hello頁面的新的管理頁面起作用了。點擊這個標籤。

4、添加第2級目錄

寫另一個view,讓它也繼承BaseView,不過顯示的東西不同:

class MyViewCate2(BaseView):
    #這裏類似於app.route(),處理url請求
    @expose('/')
    def index(self):
        return self.render('index2.html')

index2.html如下:

{% extends 'admin/master.html' %}
#爲了保持一致,繼承adminmaster.html模板

{% block body %}

歡迎來到第2層

{% endblock %}

OK,現在再加入這個層級的view:

admin.add_view(MyViewCate2(name='Hello 1', endpoint='test1', category='Test'))
admin.add_view(MyViewCate2(name='Hello 2', endpoint='test2', category='Test'))
admin.add_view(MyViewCate2(name='Hello 3', endpoint='test3', category='Test'))

重新運行,刷新,應該看到:

我們就先完成了一個添加目錄、標籤的網頁,好快啊是不是?可以通過http://127.0.0.1:5000/admin/test1 訪問它。全部代碼如下:

from flask import Flask
from flask.ext.admin import Admin, BaseView, expose
#from flask_admin import Admin, BaseView, expose

class MyView(BaseView):
#這裏類似於app.route(),處理url請求
    @expose('/')
    def index(self):
        return self.render('index.html')

class MyViewCate2(BaseView):
    #這裏類似於app.route(),處理url請求
    @expose('/')
    def index(self):
        return self.render('index2.html')

app = Flask(__name__)

admin = Admin(app,name="後臺管理系統")
# Add administrative views here
admin.add_view(MyView(name='Hello'))
admin.add_view(MyViewCate2(name='Hello 1', endpoint='test1', category='Test'))
admin.add_view(MyViewCate2(name='Hello 2', endpoint='test2', category='Test'))
admin.add_view(MyViewCate2(name='Hello 3', endpoint='test3', category='Test'))
app.run()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章