Я создаю веб-приложение с Flask и всеми соответствующими фреймворками и библиотеками (Jinja, WTForms и т. Д.). Я впервые использую Flask и создаю правильное веб-приложение. У меня возникают проблемы с выяснением того, как получить доступ к данным в различных функциях в файлах каталога моего приложения.
Чтобы было ясно, я хочу передать пользовательский ввод (из форм HTML) в функцию python, которая создает список, а затем передать этот список обратно в HTML и отобразить его на веб-странице.
Например:
@app.route("/tool2", methods=['GET', 'POST'])
def tool2():
form = ToolForm()
def mainfunc(var1):
#Code related to souping
newdata = []
for i in list(range(2)):
maindata = [inte.text for inte in soup.find('div', {'id':'main-content'}).find_all('a', {'class': 'main-info'})]
if var1 == 'x':
for i2 in maindata:
rda = i2
newdata.append(rda)
elif var1 == 'y':
for i3 in maindata:
rda = "-" + i3 + "-"
newdata.append(rda)
elif var1 == 'z':
for i4 in maindata:
rda = '+' + i4 + '+'
newdata.append(rda)
else:
redirect(url_for('tool3')) # <-- This is not working either, if someone wants to be generous and enlighten me on that as well.
print(newdata)
testpagecount += 1
if form.validate_on_submit():
mainfunc(form.tester.data)
return render_template('tool2.html', title='Tool-Active', form=form)
Я хочу напечатать newdata
на веб-странице через html, но если я попытаюсь вызвать его, ничего не произойдет (не печатается, я также не получаю никаких ошибок).
Мой HTML-код (независимо от того, где я пытаюсь напечатать newdata
в html, он не печатает):
{% extends "layout.html" %}
{% block content %}
<div class="content-section">
<form method="POST" action="">
{{ form.hidden_tag() }}
<fieldset class="form-group">
<legend>Tester</legend>
<div class="form-group">
{{ form.var1.label(class="form-control-label") }}
{% if form.var1.errors %}
{{ form.var1(class="form-control form-control-lg is-invalid") }}
<div class="invalid-feedback">
{% for errors in form.var1.errors %}
<span>{{ error }}</span>
{% endfor %}
</div>
{% else %}
{{ form.var1(class="form-control form-control-lg") }}
{% endif %}
</div>
</fieldset>
<div class="form-group">
{{ form.submittool(class="btn btn-outline-info") }}
</div>
</form>
</div>
<div class="border-top pt-3">
<small class="text-muted">
Learn More <a class="ml-2" href="{{ url_for('about') }}">About</a>
</small>
</div>
<div class="media-body">
<div class="article-metadata">
<a class="mr-2" href="#">{{ newdata }}</a>
<small class="text-muted">{{ newdata }}</small>
</div>
<p> {{ newdata }} </p>
</div>
{% endblock content %}
У меня вопрос: как я могу передать переменную из функции Python в HTML и отобразить ее на веб-странице?