Ошибка Flask-WTForms при указании валидатора максимальной длины - PullRequest
0 голосов
/ 01 ноября 2019

У меня были некоторые проблемы с получением моего валидатора максимальной длины для панели поиска, чтобы работать с моим приложением фляги. В настоящее время я получаю сообщение об ошибке: TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.

Вот мой файл forms.py:

    class SearchForm(FlaskForm):
    query = StringField('query', validators=[DataRequired(), Length(max=20)])
    submit = SubmitField('?')

и мой маршрут в route.py:

@app.route('/gsearch', methods=['POST'])
def gsearch():
    conn = sqlite3.connect("retro_games.db")
    cur = conn.cursor()
    form = SearchForm()
    if form.validate_on_submit():
        cur.execute("SELECT * FROM Games WHERE name LIKE ?",
                    ("%"+form.query.data+"%",))
        game = cur.fetchall()
        return render_template('gsearch.html', title='Search', game=game)

Спасибоза помощь:)

1 Ответ

1 голос
/ 01 ноября 2019

Вы должны обрабатывать, когда форма недействительна,

def gsearch():
    conn = sqlite3.connect("retro_games.db")
    cur = conn.cursor()
    form = SearchForm()
    if form.validate_on_submit():
        cur.execute("SELECT * FROM Games WHERE name LIKE ?",
                    ("%"+form.query.data+"%",))
        game = cur.fetchall()
        return render_template('gsearch.html', title='Search', game=game)
    # if form is not vaild, handle the logic here
    return {"error": "game not found"}

для проверки дополнительной информации Проверочные формы FLASK-WTF

...