首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python flask POST请求

Python flask POST请求
EN

Stack Overflow用户
提问于 2020-05-03 21:17:48
回答 2查看 47关注 0票数 0

我用Python开发了一个应用程序,并使用flask。下面是一段代码,它试图通过用户输入生成一条消息,然后将其附加到我的数据库中:

代码语言:javascript
复制
@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'

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

EN

回答 2

Stack Overflow用户

发布于 2020-05-03 23:37:18

代码语言:javascript
复制
AddMessage 

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

代码语言:javascript
复制
@app.route('/AddMessage/<m>')
票数 0
EN

Stack Overflow用户

发布于 2020-05-04 04:31:15

您可能希望在重定向函数中使用url_for()来重定向到应用程序中的路由。此外,您需要在AddMessage的路由中加入<m>

代码语言:javascript
复制
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):
   ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61575072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档