将上传的图像URL传递给JavaScript

4

我试图将上传的照片传递给页面上的JavaScript,但是出现了这个错误。我该如何解决?

werkzeug.routing.BuildError

BuildError:('uploaded_file',{'filename':u'user / user-1 / scan.jpeg'},None)

class AdminController(BaseController):
    route_base = ''
    route_prefix = '/admin'
    trailing_slash = True

    decorators = [login_required]

    def __init__(self):
        self.theme = "admin"

        g.theme = self.theme

        g.currentUser = g.auth.getUser()
        self.viewData = {
            "layout" : self.theme + "/" + "layouts/main.html"
        }

class BaseMethodView(MethodView):
    pass

class UserJsonDataController(AdminController, BaseMethodView):
    def __init__(self):
        super(UserJsonDataController, self).__init__()

    def uploaded_file(filename):
        return send_from_directory(app.config['UPLOAD_FOLDER'], filename) 

    def get(self):
        json = {}
        users = User.select()
        a = []
        for user in users:
            obj = {
                "user_avatar":url_for("uploaded_file", filename = user.user_avatar)
            }
            a.append(obj)
        json["rows"] = a

        return flask.jsonify(json)

module.add_url_rule('/index/show', view_func=UserJsonDataController.as_view('show'))

 $(document).ready(function () {
    $("#grid").kendoGrid({
        dataSource: {
            transport: {
                read: {
                    url: '{{ url_for("user_admin.show") }}',
                    dataType: "json"
                }
            },
            schema: {
                data: "rows"
              }
        },
        columns: [{
            field: "user_avatar",
            title: "Profil",
            template: "<img src='/#=user_avatar #' /> "    
        }
    });
});

你能否提供你的文件夹结构?url_for假设scan.jpeg在这里:flask_app/uploaded_file/user/user-1/scan.jpeg。 - GHETTO.CHiLD
app/upload/user/user-1/scan.jpeg,这是我的图片链接,我认为应该没问题。我添加了 AdminControllerBaseMethodView,你可以看一下。 - hinciler
1个回答

1
我知道这是老问题,但为什么不解决呢。@huseyin,你提到你的图片位于:app/upload/user/user-1/scan.jpeg。你的url_for()第一个参数应该与该路径匹配,在你的代码中它是'uploaded_file'。试着将其改为'upload'。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接