python - 在同一个 Flask View 中处理 GET 和 POST

标签 python flask

例如,当我键入 request.form["name"] 以从 POST 提交的表单中检索名称时,我是否还必须编写一个类似于 的单独分支request.form.get["name"]?如果我想同时支持这两种方法,是否需要为所有 POST 和所有 GET 请求编写单独的语句?

@app.route("/register", methods=["GET", "POST"])
def register():
    """Register user."""

我的问题与 Obtaining values of request variables using python and Flask 无关.

最佳答案

您可以使用 request.method 区分实际方法。

我假设你想:

  • 当使用 GET 方法触发路由时渲染模板
  • 如果使用 POST 触发路由,则读取表单输入并注册用户

因此您的情况类似于文档中描述的情况:Flask Quickstart - HTTP Methods

import flask
app = flask.Flask('your_flask_env')

@app.route('/register', methods=['GET', 'POST'])
def register():
    if flask.request.method == 'POST':
        username = flask.request.values.get('user') # Your form's
        password = flask.request.values.get('pass') # input names
        your_register_routine(username, password)
    else:
        # You probably don't have args at this route with GET
        # method, but if you do, you can access them like so:
        yourarg = flask.request.args.get('argname')
        your_register_template_rendering(yourarg)

关于python - 在同一个 Flask View 中处理 GET 和 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42018603/

相关文章:

Python 将哈希值转换为数据帧

Python 单元测试 : type checking custom class type

python - 从两列计算和创建百分比列

python - Python Eve 中的时间字段

python - 如何在子标题下正确显示图像

python - Flask JSON 序列化错误,因为 flask babel

Python XPath/libxml2 命名空间查询

python - 使用 minidom 从 XML 节点中提取文本

python - 当顺序无关紧要时,为 Web 构建适当的 SQL 查询

python - 来自 Flask 端点的长时间运行的脚本