用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()

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值