2017-02-02 143 views
-2

我将一个列表作为过滤器传递给html。当我选择任何过滤器时,我只希望将一部分选择的过滤器传递给我的代码以运行其余的过程。下面我包括code.Please的片段让我知道我是缺少在这里:过滤器选择Flask

Python代码:

allfields=allfields_1.reset_index()[['DR_ID','Table_Name','Field_Name','DQ_Dimension','Priority','Rule_Type','Rule']].values.tolist() 
    if request.method == 'GET': 
     return render_template('page2.html',allfields=allfields) 

HTML代码:

form action="{{ url_for('postfields') }}" method=["GET","POST"]> 
<div class="form-group"> 
    <div class="input-group"> 
    {% for val in allfields %}   
<input type="checkbox" name='{{val}}' value='{{val}}'{% if search_key ==val %}selected{% endif%}>{{val}}></label><br/> 

当我跑我的Python文件。我在过滤器选择中看到一个字符串。我想让我的用户看到整个字符串。但是当他们选择任何过滤器时,我只想将'Field_Names'值传递给Python代码以发布数据。

这是我的过滤器页面的外观,当我与FrontPage中的复选框运行:

[u'COMSOI2' ,u'commercial_source_data 'u'Facility_Number',u'Accuracy”,u'P1' , u'Distinct值检查',u'Value应该是唯一']>

+1

请仔细阅读[问]和[MCVE]然后[编辑]你的问题。 – davidism

回答

0

问题是您的HTML中有Flask。

<form action="{{ url_for('postfields') }}" method=["GET","POST"]> 

HTML不允许列表作为一个可接受的答案的方法属性,所以你会希望将其更改为:

<form action="{{ url_for('postfields') }}" method="POST"> 

我有点不确定你正在努力实现什么,但我认为你正在尝试创建多个选择字段。如果是这样,我会建议使用:selectPicker

第一部分:HTML

<select class="selectpicker" name="postfields[]" id="postfields[]"> 
    <option value="valueHere"> What UI sees </option> 
    <!-- You can loop through your options with jinja2 --> 
</select> 

两个部分:每申请一个选择选择器的

例瓶控制器

from flask import request 

app.route('/your/route',methods=["POST"]) 
def function(): 
#Retrieve data 
Data = request.form.getlist('postfields[]') 
+0

是的,我正在尝试做多个选择字段。你可以分享我的情况的示例代码。我是瓶新 – totalzoom

+0

totalzoom对不起,迟到的回应,但这里是一些示例代码。 –