Flask: сообщение с ошибочным запросом 400

#python #flask

#python #flask

Вопрос:

Я использую flask и firebase. У меня есть 2 кнопки в satis.html . Когда пользователь нажимает button2, я хочу извлечь некоторые данные из базы данных и показать их. Но я получаю ошибку «Неверный запрос».

Вот мой код :

 @app.route('/satis', methods=['GET', 'POST'])
def satis():
    if (request.method == 'POST'):
                sehir=request.form['il']
                yas=request.form['yas']
                id=request.form['id']
                gun=request.form['satisgunu']
                cins=request.form['cinsiyet']
                tarz=request.form['satistarzi']
                db = firebase.database()
                db.child("names").push({"sehir": sehir,"yas":yas,"id":id,"gun":gun,"cins":cins,"tarz":tarz})
                todo = db.child("names").get()
                to = todo.val()
                if request.form['submit'] == 'add':
                    db = firebase.database()
                    users_by_score = db.child("names").order_by_child("id").equal_to("2").get()
                    us = users_by_score.val()
                    return render_template('satis.html', t=to.values(),u=us.values())
                return render_template('satis.html', t=to.values())
 

Комментарии:

1. если (request.method == ‘POST’), удалите это, передайте данные в URL. Сделайте запрос get и посмотрите, что происходит. Вы получите сообщение об ошибке.

2. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Traceback») в вопрос (не комментарий) в виде текста (не скриншота). Есть и другая полезная информация.

Ответ №1:

Вы обработали только метод for post. Вам также необходимо обработать ситуацию с методом GET.

 @app.route('/satis', methods=['GET', 'POST'])
def satis():
    db = firebase.database()
    todo = db.child("names").get()
    to = todo.val()
    if (request.method == 'POST'):
                sehir=request.form['il']
                yas=request.form['yas']
                id=request.form['id']
                gun=request.form['satisgunu']
                cins=request.form['cinsiyet']
                tarz=request.form['satistarzi']
                db.child("names").push({"sehir": sehir,"yas":yas,"id":id,"gun":gun,"cins":cins,"tarz":tarz})
                if request.form['submit'] == 'add':
                    db = firebase.database()
                    users_by_score = db.child("names").order_by_child("id").equal_to("2").get()
                    us = users_by_score.val()
                    return render_template('satis.html', t=to.values(),u=us.values())
    return render_template('satis.html', t=to.values())