0

我正在尝试使用烧瓶创建一个简单的博客应用程序,该应用程序使用 flask_flatpages 使用每个帖子的降价文件的内容来填充 jinja2 模板。

app = Flask(__name__)
app.config.from_pyfile('settings.py')
pages = FlatPages(app)

@app.route('/<path>/')
def blog_post(path):
    post = pages.get_or_404(path)
    return render_template('post.html', post=post)

我遇到的问题是我无法在 markdown 文件中链接图像,例如以下 example_post.md 文件在 image.png 文件的呈现 HTML 中返回 404 错误(访问例如http:/ /localhost:5000/example_post/ )

# Heading
Here is an example image.
![png](image.png)

我认为这是因为访问图像试图找到example_post/image.png,由于我创建的路由,但图像实际上与post.md文件位于同一目录中(没有example_post/目录)。文件结构如下:

--app.py
--posts/
----example_post.md
----image.png
--templates/
----post.html

关于在这种情况下如何正确引用 image.png 文件,或者如何更好地构建应用程序以使其工作的任何建议?

4

1 回答 1

0

我们可以使用下面的示例来解决您的问题。

from flask import send_from_directory

@app.route('<path:filename>')
def serve_static(filename):
    root_dir = os.path.dirname(os.getcwd())
    return send_from_directory(os.path.join(root_dir, 'md'), filename)

示例: https ://www.programcreek.com/python/example/65747/flask.send_from_directory

于 2018-10-17T21:10:08.787 回答