来自表单 None 的 Flask-Appbuilder POST
Flask-Appbuilder POST from form None
我的 POST 发送所选 RadioField 的数据,但在 Flask 中我只得到 'None' 的 form.display.data
。 GET 工作正常,RadioFields 在页面上,当我单击 'Submit' 时,显示变量以正确的选择发送到 POST。
如何获取 POST 的实际数据?
views.py
class Items(SimpleFormView):
route_base = "/manage"
datamodel = SQLAInterface(TerminalA82)
message = "Please make a seslection"
form = List_Items()
myList = Controller.generate #<-- external function provides list
form.display.choices = myList
@expose('/manage', methods=['GET'])
@has_access
def this_form_get(self):
return self.render_template('list_items.html', param1='Items', form=self.form)
@expose('/manage', methods=['POST'])
@has_access
def this_form_post(self):
return self.render_template('blank.html', param1=str(self.form.display.data))
POST 在页面上呈现 'None'。
forms.py
class List_Items(Form):
display = RadioField('Items', choices=[], coerce=int)
list_items.html(模板)
{% extends "appbuilder/base.html" %}
{% block content %}
<h3>{{param1}}</h3>
<form method="post">
{{ form.display }}
<input type="submit" value="Submit">
</form>
{% endblock %}
我的列表内容
>>> print myList
[('5', 'MyBAsic'), ('9', 'Cloudtest'), ('12', 'Test2'), ('15', 'NHLS-Test'), ('18', 'HSRC-Test')]
>>>
blank.html
{% extends "appbuilder/base.html" %}
{% block content %}
<p>{{param1}}</p>
{% endblock %}
是的,如果您看到 Flask 文档,那么您需要以 request.form['Items']
而不是 form.display.data
.
的方式访问该数据
我的 POST 发送所选 RadioField 的数据,但在 Flask 中我只得到 'None' 的 form.display.data
。 GET 工作正常,RadioFields 在页面上,当我单击 'Submit' 时,显示变量以正确的选择发送到 POST。
如何获取 POST 的实际数据?
views.py
class Items(SimpleFormView):
route_base = "/manage"
datamodel = SQLAInterface(TerminalA82)
message = "Please make a seslection"
form = List_Items()
myList = Controller.generate #<-- external function provides list
form.display.choices = myList
@expose('/manage', methods=['GET'])
@has_access
def this_form_get(self):
return self.render_template('list_items.html', param1='Items', form=self.form)
@expose('/manage', methods=['POST'])
@has_access
def this_form_post(self):
return self.render_template('blank.html', param1=str(self.form.display.data))
POST 在页面上呈现 'None'。
forms.py
class List_Items(Form):
display = RadioField('Items', choices=[], coerce=int)
list_items.html(模板)
{% extends "appbuilder/base.html" %}
{% block content %}
<h3>{{param1}}</h3>
<form method="post">
{{ form.display }}
<input type="submit" value="Submit">
</form>
{% endblock %}
我的列表内容
>>> print myList
[('5', 'MyBAsic'), ('9', 'Cloudtest'), ('12', 'Test2'), ('15', 'NHLS-Test'), ('18', 'HSRC-Test')]
>>>
blank.html
{% extends "appbuilder/base.html" %}
{% block content %}
<p>{{param1}}</p>
{% endblock %}
是的,如果您看到 Flask 文档,那么您需要以 request.form['Items']
而不是 form.display.data
.