• flask admin学习记录


    flask admin是flask框架中一个非常好用的后台管理框架,但是由于文档内容太少,经常遇到问题无法解决,这里记录一下

    一简单的使用

    from flask import Flask
    from flask_admin import Admin
    # csrf
    from flask_admin.form import SecureForm
    from flask_babelex import Babel
    # 文件上传
    # from flask_admin import form as admin_form
    
    from wtforms import form, fields, validators
    
    from flask_admin.contrib.pymongo import ModelView
    from pymongo import MongoClient
    
    from werkzeug.security import check_password_hash
    
    # 文件上传
    # from flask_admin.contrib.fileadmin import FileAdmin
    # import os.path as op
    
    # file_path = op.join(op.dirname(__file__), 'static')
    
    
    app = Flask(__name__)
    babel = Babel(app)
    app.config['SECRET_KEY'] = 'xxx'
    app.config['BABEL_DEFAULT_LOCALE'] = 'zh_CN'
    client = MongoClient(host='xxx’, port=27017)
    db = client.test
    db.authenticate('xxx', 'xxx')
    Rentals = db.rentals

    class RentalsForm(form.Form): city = fields.StringField(u'城市')

    class RentalsView(ModelView): column_labels = dict( _id = u'编号', city = u'城市', ) form_base_class = SecureForm # 文件上传 # form_extra_fields = { # 'picture': admin_form.ImageUploadField(label=u'照片', base_path=file_path) # } column_list = ['_id', 'city'] form = RentalsForm

    if __name__ == '__main__': admin = Admin(app, name=u'后台管理系统') admin.add_view(RentalsView(Rentals, name=u'个人房源')) app.run

    二filed.FieldList,field.FormField的使用

    在使用数据库mongodb的时候会遇到某个字段是个列表

    这时候就可以使用field.FieldList

    features = fields.FieldList(unbound_field=fields.StringField(u'配置'), label=u'房屋配置', min_entries=10)

    这样编辑的时候就会有10个配置可以编辑,修改min_entries可以增加编辑的个数

    保存之后是个列表

    但是如果该字段是个列表,列表元素都是字典怎么办

    这时候可以搭配FormField来使用

    class PictureForm(form.Form):
        id = fields.StringField(u'编号')
        description = fields.StringField(u'描述')
        url = fields.StringField(u'url路径')
        picture = fields.FieldList(unbound_field=fields.FormField(PictureForm), label=u'图片', min_entries=10)

    搞定了

  • 相关阅读:
    服务器做系统备份时失败
    PHPMailer中文乱码问题的解决方法
    html字符串分行显示
    Oracle中取某几个数的最大值最小值
    分布式事务之 Seata
    org.apache.dubbo 2.7.7 服务端处理请求及时间轮(失败重试)
    org.apache.dubbo 2.7.7 服务消费源码
    org.apache.dubbo 2.7.7 服务发布注册源码
    org.apache.dubbo 2.7.x 再聚首
    spring-cloud-gateway 服务网关
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/7307469.html
Copyright © 2020-2023  润新知