Ссылка на файлы изображений в уценке для колбы - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь создать простое приложение для блога с использованием фляги, которая использует 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)

У меня проблема в том, что я не могу связать изображение в файле уценки, например, следующий файл example_post.md возвращает ошибку 404 в отрендеренном HTML-коде для изображения.png файл (при доступе, например, 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 в этом случае, или каклучше структурировать приложение, чтобы эта работа работала?

1 Ответ

0 голосов
/ 18 октября 2018

Мы можем использовать это ниже в качестве примера для решения вашей проблемы.

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

...