Flask管理视图中的渲染模板打印文本而不是html功能

时间:2017-08-01 23:18:50

标签: python html flask-admin

我已经格式化了Flask管理视图(app.py)中的一列。

class main_coursesView(ModelView):
    def _user_formatter(view, context, model, name):
       return render_template("template.html")

    column_formatters = {
        'image': _user_formatter
    }

template.html文件包含以下代码。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<a href="#" id="upload_widget_opener">Upload images</a>
<script src="https://widget.cloudinary.com/global/all.js" type="text/javascript"></script>  

<script type="text/javascript">  
  document.getElementById("upload_widget_opener").addEventListener("click", function() {
    cloudinary.openUploadWidget({ cloud_name: 'zeboio', sources: [ 'local', 'url', 'camera', 'image_search', 
                 'facebook', 'dropbox', 'google_photos' ], upload_preset: 'mdjqdwsf'}, 
      function(error, result) { console.log(error, result) });
  }, false);
</script>

</body>
</html>

因此,当我运行视图(app.py)时,在格式化列中,将打印html文件的内容。相反,我需要执行html文件中提到的事件。

1 个答案:

答案 0 :(得分:1)

使用markupsafe中的Markup方法包装render_template输出。

from markupsafe import Markup

class main_coursesView(ModelView):
    def _user_formatter(view, context, model, name):
       return Markup(render_template("template.html"))

    column_formatters = {
        'image': _user_formatter
    }