当前位置: 首页 > 面试题库 >

在同一Flask视图中处理GET和POST

段干弘扬
2023-03-14
问题内容

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

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

问题答案:

你可以使用区分实际方法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)


 类似资料:
  • 当我键入,例如,要从POST提交的表单中检索名称,我还必须编写一个类似于?如果我想支持这两种方法,我需要为所有POST和GET请求编写单独的语句吗? 我的问题与使用python和Flask获取请求变量的值密切相关。

  • 提到 Django 和 Flask,Tornado 开发者印象最深的可能就要属这个视图函数了,使用简单但是难以扩展, 尤其这个 if request.method == 'GET' 着实不够优雅,引起使用起来非常受限。 这样一个明显的缺陷,不可能不被官方注意到,两者也确实提供了更强大的的视图类。 Django Django 1.8 的文档 中 提供了这样的示例: # some_app/views.

  • 我有一个Servlet,它接收请求,必须处理5个任务(从外部服务器获取数据),并将所有数据发送回客户机。

  • 英文原文:http://emberjs.com/guides/views/handling-a-view/ 你只需简单地将想要响应事件的名字作为你的视图的方法名实现即可,而不必为响应的每个元素上注册事件监听器。 例如,假设我们有这样一个模板: 1 2 3 {{#view App.ClickableView}} This is a clickable area! {{/view}} 我们这样实现

  • 问题内容: 我的Flask应用程序必须进行大量计算才能获取特定页面。在Flask执行该功能时,其他用户无法访问该网站,因为Flask忙于进行大量计算。 有什么方法可以使我的Flask应用程序接受来自多个用户的请求? 问题答案: 是的,将应用程序部署在其他WSGI服务器上,请参阅Flask部署选项文档。 Flask随附的服务器组件实际上仅用于开发应用程序时;即使可以将其配置为处理并发请求(从Flas

  • Cookie以文本文件的形式存储在客户端计算机上。 其目的是记住和跟踪与客户使用有关的数据,以获得更好的访问体验和网站统计。 Request对象包含一个的属性。 它是所有cookie变量及其对应值的字典对象,客户端已发送。 除此之外,cookie还会存储其到期时间,路径和站点的域名。 在Flask中,cookies设置在响应对象上。 使用函数从视图函数的返回值中获取响应对象。 之后,使用响应对象的