python - 将参数传递给烧瓶 GET 函数
问题描述
我正在尝试编写一个简单的消息传递功能,尽管进行了搜索,但在想出一个可行的解决方案时遇到了麻烦。在 get 函数上,代码检索存储的消息并将其传递给呈现。
post 函数存储所有工作正常的消息,但是我试图将用户重定向回他们来自的原始页面以显示新消息,因此试图将接收用户变量传递给 get 函数。
到目前为止,我的代码如下。我是烧瓶的新手,所以也会感谢任何其他指针。提前致谢!
@app.route("/messaging", methods=["GET", "POST"])
@login_required
def messaging():
if request.method == "GET":
clicked_user = request.args.get('user')
messages = db.execute("SELECT * FROM messages WHERE (m_sending_user = :self_user AND m_receiving_user = :other_user) OR (m_sending_user = :other_user AND m_receiving_user = :self_user)",
self_user = session["user_id"],
other_user = clicked_user)
return render_template("messaging.html", messages=messages, clicked_user=clicked_user)
if request.method == "POST":
receiving_user = request.form.get("recipient")
db.execute("INSERT INTO messages (m_sending_user, m_receiving_user, message) VALUES (:m_sending_user, :m_receiving_user, :message)",
m_sending_user = session["user_id"],
m_receiving_user = receiving_user,
message = request.form.get("reply"))
flash("Sent!")
return render_template("messaging.html")
解决方案
为什么你不简单地让 post 函数也像这样调用 get 函数
def get_function(clicked_user):
messages = db.execute("SELECT * FROM messages WHERE (m_sending_user = :self_user AND m_receiving_user = :other_user) OR (m_sending_user = :other_user AND m_receiving_user = :self_user)",
self_user = session["user_id"],
other_user = clicked_user)
return render_template("messaging.html", messages=messages, clicked_user=clicked_user)
@app.route("/messaging", methods=["GET", "POST"])
@login_required
def messaging():
if request.method == "GET":
clicked_user = request.args.get('user')
return get_function(clicked_user)
if request.method == "POST":
receiving_user = request.form.get("recipient")
db.execute("INSERT INTO messages (m_sending_user, m_receiving_user, message) VALUES (:m_sending_user, :m_receiving_user, :message)",
m_sending_user = session["user_id"],
m_receiving_user = receiving_user,
message = request.form.get("reply"))
flash("Sent!")
return get_function(m_receiving_user)
但当然有更好的命名函数;)
推荐阅读
- javascript - 如何在带有 AJAX 的客户端中使用 JWT
- javascript - 如何使用jquery中的filter函数来过滤div内的一组数据?
- ruby - 如何避免通过多个方法传递相同的参数
- javascript - 如何在谷歌甘特图中添加水平滚动条?
- node.js - Puppeteer 需要很长时间才能加载页面
- cordova - 在 IONIC App 中连接 OTG Device (Pendrive) 并执行 READ/WRITE 操作
- javascript - 写入项目目录中的文件 - React Native
- javascript - Angular Universal 不呈现来自 API 请求的数据
- r - 传单和闪亮的 html 小部件错误呈现
- javascript - 如何在 angularjs 中获取子元素