嵌入式平板视图

Flask-Admin-Subview的Python项目详细描述


烧瓶管理子视图

将烧瓶管理列表视图嵌入到任意页面:

https://raw.githubusercontent.com/artemShelest/flask-admin-subview/master/res/screen1.pnghttps://raw.githubusercontent.com/artemShelest/flask-admin-subview/master/res/screen2.png

限制

  • 不支持内联编辑
  • 仅限bootstrap3模板

安装

pip install flask-admin-subview

集成

集成的最简单方法是对模型的详细信息视图使用帮助程序。下面的示例演示 集成子视图以在详细信息页中显示sqlalchemy模型的关系。

db架构

classContentModel(db.Model):__table__="content"id=db.Column(db.Integer,primary_key=True)container_id=db.Column(db.Integer,db.ForeignKey("container.id"),nullable=False)classContainerModel(db.Model):__table__="container"id=db.Column(db.Integer,primary_key=True)content=db.relationship(ContentModel)

准备子视图

将模型的子视图分类为一个好主意:

importflask_admin_subviewclassContentModelSubview(flask_admin_subview.View,ContentModelView):pass

或者您可以为子视图创建一个全新的视图:

fromflask_admin.contrib.sqlaimportModelViewimportflask_admin_subviewclassContentModelSubview(flask_admin_subview.View,ModelView):pass

添加查询筛选器以仅显示特定容器的内容,容器ID将作为URL参数传递:

classContentModelSubview(...):defget_query(self):returnself._extend_query(super(ContentModelSubview,self).get_query())defget_count_query(self):returnself._extend_query(super(ContentModelSubview,self).get_count_query())def_extend_query(self,query):container_id=request.args.get('id')ifcontainer_idisNone:abort(400,"Container id required")returnquery.filter(ContentModel.container_id==container_id)

初始化扩展名

fromflask_admin_subviewimportSubviewapp=Flask(__name__)admin=Admin(app,template_mode="bootstrap3")# only supports bootstrap3 modeSubview(app,template_mode="bootstrap3")

将子视图添加为蓝图

app=Flask(__name__)# ...app.register_blueprint(ContentModelSubview(Content,db.session,"Content",endpoint="content_subview").create_blueprint(admin))

准备容器视图

使用helper在模型的详细信息中显示子视图:

fromflask_admin_subviewimportSubviewContainerMixin,SubviewEntryclassContainerView(SubviewContainerMixin,ModelView):can_view_details=Truesubviews=(# specify that we need to pass id from the location URL to the subviewSubviewEntry("/admin/content_subview/","Content Subview","id"),)

待办事项

  • 添加测试
  • 添加示例应用程序代码注释
  • 添加bootstrap2模板
  • 可能,支持内联编辑
  • 描述高级用法

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧