Python flask POST запрос - PullRequest
       13

Python flask POST запрос

0 голосов
/ 03 мая 2020

Я разрабатываю приложение на Python и использую flask. Вот фрагмент кода, который пытается сгенерировать сообщение с помощью ввода пользователя и затем присоединить его к моей базе данных:

@app.route('/MakeMessage',methods = ['POST', 'GET'])
def MakeMessage():
   if request.method == 'POST':
       user_id = request.form['user_id']
       content = request.form['content']
       paticipants = [request.form['participant1'],request.form['participant2'],request.form['participant3']]
       m = Message(user_id=user_id,content=content,participants=paticipants)
       return redirect('/AddMessage',m = m)

@app.route('/AddMessage',methods = ['POST', 'GET'])
def AddMessage(m):
   if request.method == 'POST':
      db.session.add(m)
      db.session.commit()
      return 'Your message has been successfully saved'

Я знаю, что с кодом что-то не так, но я не знаю, что. Есть идеи?

Ответы [ 2 ]

1 голос
/ 03 мая 2020
AddMessage 

принимает параметр m Так что в app.route он должен быть изменен на этот

@app.route('/AddMessage/<m>')
0 голосов
/ 03 мая 2020

Вы хотели бы использовать url_for() в функции перенаправления для перенаправления на маршрут в вашем приложении. Кроме того, вам нужно указать <m> в вашем маршруте для AddMessage.

from flask import redirect, url_for, request

@app.route('/MakeMessage',methods = ['POST', 'GET'])
def MakeMessage():
   if request.method == 'POST':
      ...
      return redirect(url_for('/AddMessage',m=m))

@app.route('/AddMessage/<m>',methods = ['POST', 'GET'])
def AddMessage(m):
   ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...