Flask 拓展(flask-admin)

# 下载安装包
pip install Flask-BasicAuth pip install Flask-Babel pip install flask-admin

1.  Flask-BasicAuth实现Authentication   #  登录认证

Demo: 基础使用方式

from flask import Flask
from flask_basicauth import BasicAuth   # 登陆权限认证
from flask_babelex import Babel         # 解析为中文

app = Flask(__name__)

app.config['BASIC_AUTH_USERNAME'] = 'admin'
app.config['BASIC_AUTH_PASSWORD'] = '123456'

app.config['BASIC_AUTH_FORCE'] = True  # 整个站点都验证

babel = Babel(app)
basic_auth = BasicAuth(app)


@app.route('/')
def index():
    return "hello world"

if __name__ == '__main__':
    app.run()

2.  扩展Flask-admin,基础搭建

from flask_admin import Admin
1. 初始化Admin 管理程序
admin = Admin(app)

2. 设置页面展示栏
admin.add_view(MyV1(db.session,name = u'管理新闻'))
或
admin.add_view(WV(db.session, category='展示栏名称', endpoint='展示栏下/目录'))

3. 展示页面信息
from flask_admin import expose
from flask_admin.contrib.sqla import ModelView
class BView(ModelView):
    # 常用属性
    can_create = False    # 是否创建
    can_edit = True          # 是否编辑
    can_delete = False    # 是否删除

    # 转换字段名为中文
    column_labels = {"数据库字段名":"中文"}
    # 字段值int转化中文
    column_choices = {"数据库字段名":[(0, ""), (1, "")]}
    # 搜索条件
    column_searchable_list = ['数据库字段名']
    # 筛选条件
    column_filters = ['数据库字段名']
    # 列表页字段显示值
    column_list = ("数据库字段名")
    def __init__(self, session, **kwargs):
        super(类名, self).__init__(表名, session, **kwargs)

    # 视图
    @expose('/index/')
    def index(self):
        return self.render('index.html')

3. 实践

# 以项目的方式书写

import os
import sys

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)

from flask import Flask, redirect
from flask_admin import Admin
from flask_babelex import Babel
from flask_basicauth import BasicAuth

app = Flask(__name__)
app.config["SECRET_KEY"] = "key"
app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'
app.config['BASIC_AUTH_USERNAME'] = 'username'
app.config['BASIC_AUTH_PASSWORD'] = 'passwd'
app.config['BASIC_AUTH_FORCE'] = True
babel = Babel(app)
basic_auth = BasicAuth(app)
admin = Admin(app)

admin.add_view(py文件名(session对象, category='导航栏名称', endpoint='下拉页注释))


@app.route('/')
def index():
    return redirect('/admin', code=302)


if __name__ == '__main__':
    app.run()
Code1
from flask_admin import expose
from flask_admin.contrib.sqla import ModelView

class WenshuView(ModelView):
    can_create = False
    can_edit = True
    can_delete = True
    simple_list_pager = True
    # 转化中文
    column_labels = {'': ''}
    # 字段值转化
    column_choices = {'': ‘’, }
    # 搜索条件
    column_searchable_list = ['']
    # 筛选条件
    column_filters = ['']

    # 列表页字段显示值
    column_list = ('字段名', ''')

    def __init__(self, session, **kwargs):
        super(类名, self).__init__(表名, session, **kwargs)
Code2
原文地址:https://www.cnblogs.com/xinzaiyuan/p/14478613.html