zoukankan      html  css  js  c++  java
  • 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)

    搞定了

  • 相关阅读:
    ShopNum1网店系统:组建电子商务运营团队
    jquery 日期+时间 date & time 插件
    写代码如坐禅:你是哪一类程序员
    杨卫华:新浪微博的架构发展历程
    win7 搜索 在新窗口【打开文件位置】
    架构师应该了解的知识1
    flash cs4 和 flex builder 联合开发
    Div拖动/调整大小实例
    asp.net mvc 2.o 中使用JQuery.uploadify
    jquery 拖动改变div 容器大小
  • 原文地址:https://www.cnblogs.com/lgh344902118/p/7307469.html
Copyright © 2011-2022 走看看