Я пытаюсь создать список кафе, которые были скопированы с веб-сайта, в шаблоне cafe_form
. Скребок работает правильно, но я не могу заставить его отображать результаты в шаблоне html.
Я пытаюсь использовать a для l oop, но не могу понять это ..
Вот код .py маршрутов:
@app.route('/cafes', methods = ['GET', 'POST'])
def cafe():
cafe_form = CafeForm()
cafes_user_city = CafeForm
if cafe_form.validate_on_submit():
##flash(f'The city you chose is {cafe_form.city.data}, The Suburb {cafe_form.suburb.data}')
url_cafes = f"https://www.broadsheet.com.au/{cafe_form.city.data}/guides/best-cafes-{cafe_form.suburb.data}" #f-string adds user suburb
html_cafes = urlopen(url_cafes)
soup_cafe_list = BeautifulSoup(html_cafes, 'html.parser')
type(soup_cafe_list)
cafe_container = soup_cafe_list.find_all("h2", class_= "venue-title")
cafes =[]
for container in cafe_container:
cafes.append(container.text)
print(cafes)
return render_template('cafeform.html', title= 'Search', cafe_form=cafe_form)
А вот шаблон html.
{% extends "base.html" %}
{% block content %}
<h1>Cafes Search</h1>
<form action="" method="post" novalidate>
{{ cafe_form.hidden_tag() }}
<p>
{{ cafe_form.city.label }}<br>
{{ cafe_form.city(size=32) }} <br>
</p>
<p>
{{ cafe_form.suburb.label }}<br>
{{ cafe_form.suburb(size=32) }} <br>
</p>
<p>
{{ cafe_form.submit() }}
</p>
</form>
<h1>Results</h1>
{% for cafe in cafes %}
<div><p> {{ cafes }} </p></div>
{% endfor %}
{% endblock %}