将上传的图片 url 传递给 javascript

Pass uploaded image url to javascript

我试图将我上传的照片传递到页面上的 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 #' /> "    
        }
    });
});

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