在flask-admin

时间:2018-07-26 18:16:39

标签: flask flask-admin

因此,基本上,我正在尝试向我的Flask + Flask-Admin应用添加自定义终结点,以允许管理员下载CSV。

类似这样的东西:

class MyAdminIndexView(AdminIndexView):
    @expose('/')
    def index(self):
        return self.render('admin/home.html')

    def is_accessible(self):
        return current_user.has_role('admin')

    @expose('/csv-export')
    def csv_export(self):
        batch_num = request.args.get('batch_num')

        if not batch_num:
            flash('Invalid batch id', 'danger')
            abort(404)

        si = io.StringIO()
        cw = csv.writer(si)

        rows = MyObj.query.filter_by(batch_num=batch_num).all()

        cw.writerows(rows)
        output = make_response(si.getvalue())
        output.headers["Content-Disposition"] = "attachment; filename=export.csv"
        output.headers["Content-type"] = "text/csv"
        return output

但是,如果将其添加到基本管理员视图中,则'/ csv-export'路由不会注册,并且会显示404。

我想我可以为此端点添加一个全新的蓝图,但是对于不需要单独模板视图的简单端点来说,这似乎需要大量工作。有提示吗?

0 个答案:

没有答案