因此,基本上,我正在尝试向我的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。
我想我可以为此端点添加一个全新的蓝图,但是对于不需要单独模板视图的简单端点来说,这似乎需要大量工作。有提示吗?