PythonFlaskPOST请求

2024-09-30 16:41:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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'

我知道代码有问题,但我不知道是什么。 有什么想法吗


Tags: 代码formidappgetifrequestdef
2条回答

您可能希望在重定向函数中使用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):
   ...
AddMessage 

接受参数m 因此,在app.route中,应将其更改为

@app.route('/AddMessage/<m>')

相关问题 更多 >