Для задачи, которую вы выполняете, я настоятельно рекомендую использовать шаблон Jinja вместо BeautifulSoup.
Если вы использовали Jinja, вам просто нужно передать словарь с редакционной информацией в editorial.html
, который может выглядеть следующим образом:
<!-- reusable editorial.html -->
<div class="editorial">
<div class="editorial-title">{{ title }}</div>
<div class="editorial-image"><img src="{{ image }}"></div>
<div class="editorial-subtitle">{{ subtitle }}</div>
<div class="editorial-article">{{ article }}</div>
</div>
Включите editorial.html
в следующее Файл html, который будет загружен flask. В этом примере это будет базовый шаблон.
<!-- template.html -->
<html>
<head>
<title>Jinja Sample</title>
</head>
<body>
{% include "editorial.html" %}
</body>
</html>
Использование Flask
Запустите приложение flask, как показано ниже:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def editorial_test():
editorial_info = {
"title" : "Hello",
"image" : "https://images.dog.ceo/breeds/collie-border/n02106166_2595.jpg",
"subtitle" : "world",
"article" : "Yeah. But Parasite? It should have been Gone with the Wind!"
}
return render_template('template.html', editorial=editorial_info)
if __name__ == '__main__':
app.run(debug=True)
Я не проверял код выше. Посмотрите этот превосходный учебник для дальнейшего разъяснения.
Рендеринг файлов напрямую
Если вы не хотите использовать Flask, вы может отобразить веб-страницу следующим образом (я предполагаю, что все файлы находятся в одном каталоге):
import jinja2
editorial_info = {
"title" : "Hello",
"image" : "https://images.dog.ceo/breeds/collie-border/n02106166_2595.jpg",
"subtitle" : "world",
"article" : "Yeah. But Parasite? It should have been Gone with the Wind!"
}
templateLoader = jinja2.FileSystemLoader(searchpath="./")
templateEnv = jinja2.Environment(loader=templateLoader)
TEMPLATE_FILE = "template.html"
template = templateEnv.get_template(TEMPLATE_FILE)
outputText = template.render(editorial_info)
print(outputText)
Вывод
<html>
<head>
<title>Jinja Sample</title>
</head>
<body>
<div class="editorial">
<div class="editorial-title">Hello</div>
<div class="editorial-image"><img src="https://images.dog.ceo/breeds/collie-border/n02106166_2595.jpg"></div>
<div class="editorial-subtitle">world</div>
<div class="editorial-article">Yeah. But Parasite? It should have been Gone with the Wind!</div>
</div>
</body>
</html>