如何将javascript变量传递给烧瓶?
我有一个用几个 SelectFields 创建的 Flask 表单,在更改事件时,我使用 JavaScript 来捕获选定的值并在提交表单之前存储在全局变量中。如何传递在节内捕获的这个全局变量值。
我正在学习和试验 Flask、Python 和 JavaScript 编程。
我创建了一个 Flask 表单来获取用户选择的选项列表值,并且还有提交按钮。为了创建一个依赖的选择字段,我正在编写关于更改函数的 JavaScript,并希望在提交到 Flask 之前传递这个选定的字段值,以便我可以根据传递的值过滤到数据库中以获取下一个选择列表值。
烧瓶代码:
@app.route("/userForm", methods=['GET', 'POST'])
def userForm():
data = pd.read_excel('DataFile.xlsx', sheet_name='Sheet1')
form = UserForm()
form.company.choices = [("", "---")]+[(company, company) for company in data.Company.unique()]
form.dept.choices = [("", "---")]+[(dept, dept) for dept in data.Department.unique()]
return render_template('UserForm.html', data=data, form=form)
带有 javaScript 代码的 UserForm.html
{% extends "layout.html" %}
{% block content %}
<div class="content-section">
<form method="POST" action="/api">
<!-- Below tag is important to validate on submit message -->
{{ form.csrf_token }}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Agent Assignment</legend>
<div class="form-group">
{{ form.company.label(class="form-control-label") }}
{{ form.company(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ form.dept.label(class="form-control-label") }}
{{ form.dept(class="form-control form-control-lg") }}
</div>
</fieldset>
<div class="form-group">
{{ form.submit(class="btn btn-outline-info")}}
</div>
</form>
</div>
<script>
const company = document.querySelector('#company');
const dept = document.querySelector('#dept');
let selectedCompany = '';
let selectedDept = '';
company.addEventListener('change', (e) => {
selectedCompany = e.target.value;
});
dept.addEventListener('change', (e) => {
selectedDept = e.target.value;
});
</script>
{% endblock content %}
我希望在 UI 中提交之前将 selectedCompany、selectedDept 全局变量值(在更改事件上)放入我的 Flask userForm() python 函数中。
我不知道如何从 JavaScript 在 Flask 中获取它。请建议。