冷冻瓶中URL生成器的问题

时间:2014-03-17 21:08:02

标签: python flask

我正试图用冷冻瓶冷冻烧瓶现场,并且我被困在一个网址生成器上。

我的图片有@app.route

@app.route('/images/<image>/')
def images(image):
    return send_from_directory(os.path.join(app.root_path, 'images'), image)

Frozen-flask警告我&#34; 没有为端点图像冻结。你忘记了一个URL生成器吗?&#34;所以我尝试生成像这样的网址生成器

@freezer.register_generator
def images():
    path = os.path.join(app.root_path, 'images')
    images = next(os.walk(path))[2]
    return images

会产生ValueError:&#39; 404 NOT FOUND&#39;

我做错了什么?

1 个答案:

答案 0 :(得分:2)

Frozen-Flask生成器需要一个带字典的迭代:

@freezer.register_generator
def images():
    path = os.path.join(app.root_path, 'images')
    images = next(os.walk(path))[2]
    for image in images:
        yield {"image": image}

你这样做的方式,你返回了一个可迭代的字符串,Frozen-Flask将其理解为URL而不是值。

如果要返回字符串,则必须返回URL:yield url_for('images', image=image)

此外,您的路线不应该有尾部斜线,因为这样冻结Flask了解它是一个文件夹,其中默认文件有index.html。删除尾部斜杠:@app.route('/images/<image>')

查看文档以获取更多详细信息:https://pythonhosted.org/Frozen-Flask/#url-generators