Возврат всех полей, а не выбранных полей

У меня есть веб-страница со списком из 5 полей. Я пытаюсь создать вывод в зависимости от полей, выбранных пользователем.

Вот код, который у меня сейчас есть, и он отлично работает.

fields = {field: value for field, value in form.data.items() if
              value != None  or value != 'csrf_token'}
print(fields)
## This prints out a list of all fields

o = []
for a in fields:
    if a is not None:
        o.append(a)
print(o)

p = o[:-1]
print(p)


output = sample_function(*p)

Проблема, с которой я сталкиваюсь, заключается в том, что независимо от того, какие поля выбраны, результат одинаков (он возвращает все поля независимо от того, выбраны они или нет).

Может ли кто-нибудь посоветовать, где я ошибаюсь. Спасибо.

Обновлять:

@app.route('/index', methods=['GET','POST'])
def sample_function():
form = SampleForm()
if form.validate_on_submit():
    store_id = form.store_id.data
    store_name = form.store_name.data
    location_id = form.location_id.data
    store_type = form.store_type.data
    store_location = form.store_location.data

fields = {field: value for field, value in form.data.items() if
              value != None  or value != 'csrf_token'}
print(fields)
## This prints out a list of all fields

o = []
for a in fields:
    if a is not None:
        o.append(a)
print(o)

p = o[:-1]
print(p)


output = sample_function(*p)

Функция, выполняющая запрос:

def sample_function(*field_names):
    cursor = conn.cursor()
    cursor.execute('select {} from table.format(', '.join(str(field) for field in field_names)))

Привет, if value != None or key != 'None' or key != 'csrf_token', здесь or лишний. Любой ключ пройдет проверку. Вы хотели использовать and?

TrebledJ 23.11.2018 15:05

@TrebuchetMS это была опечатка, я ввел ключ! = Нет дважды .. Я отредактировал сообщение

dark horse 23.11.2018 15:33

@TrebuchetMS проблема все еще существует ..

dark horse 23.11.2018 15:35

В этом первом комментарии я просто указал на то, что я считаю непреднамеренным. Глядя на ваш вопрос, я все еще не понимаю, как ваши поля выбираются пользователем и как это связано с показанным вами кодом. Пожалуйста, дополните...?

TrebledJ 23.11.2018 15:40

@TrebuchetMS, как упоминалось в моем первоначальном сообщении, у меня есть веб-страница с 5 полями (флажками). Как пользователь я могу выбрать любое из полей. На основе пользовательского ввода создается Excel с выбранными полями. Если все флажки установлены, создается Excel. Однако, если я сниму отметку с одного из флажков, он все равно будет возвращать тот же результат со всеми столбцами .. Я обновил свою первоначальную публикацию, полную форму с помощью SQL, который запускается при отправке ..

dark horse 23.11.2018 15:48

@TrebuchetMS Надеюсь, обновленный пост поможет ..

dark horse 23.11.2018 15:51

Опять же, if value != None or value != 'csrf_token' является избыточным, поскольку любой value передаст условие как True. Я сомневаюсь, что это твое намерение.

TrebledJ 23.11.2018 16:20

Позвольте нам продолжить обсуждение в чате.

dark horse 23.11.2018 16:26
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
8
36
0

Другие вопросы по теме