【问题标题】:Get and Post methods in Python (Flask)Python (Flask) 中的 Get 和 Post 方法
【发布时间】:2015-09-13 21:06:56
【问题描述】:

我是 Flask 和 Web 开发的新手,我正在尝试创建一个简单的应用程序,其中在服务器上生成整数数组并发送到客户端。这是 app.py 中的一些示例(工作)代码:

from flask import Flask, render_template, request, url_for

import random


app = Flask(__name__)


@app.route('/')
def form():
    s_abc = [random.random() for _ in range(40)]
    return render_template('abc.html', s_abc=s_abc)

if __name__ == '__main__':
  app.run(debug=True)

这是 abc.html 的(工作)sn-p:

<div>
  {{s_abc}} 
</div>

我的问题是:

  1. 即使没有 GET/POST HTTP 方法,它是如何工作的?我认为服务器和客户端之间的通信需要 get/post http 方法(如此处所述:http://www.tutorialspoint.com/http/http_methods.htm)。然而,即使我没有写这样的东西,我的代码也能工作:

    @app.route('/', methods=['GET'])
    
  2. 有没有办法重写它以使其使用 POST?显然,POST 更适合处理敏感数据,如下所述:http://blog.teamtreehouse.com/the-definitive-guide-to-get-vs-post

谢谢。

【问题讨论】:

    标签: python http post flask get


    【解决方案1】:

    flask 的默认值为GET。你可以使用methods 来改变它:

    @app.route('/', methods=['GET', 'POST'])
    

    阅读文档:Flask 1.0.2 documentation

    Web 应用程序在访问 URL 时使用不同的 HTTP 方法。在使用 Flask 时,您应该熟悉 HTTP 方法。默认情况下,路由只响应 GET 请求。您可以使用 route() 装饰器的方法参数来处理不同的 HTTP 方法。

    【讨论】:

      【解决方案2】:

      默认为GETPOST 仅适用于abc.html 具有表单并且用户提交s_abc 的值的情况。在您的情况下,您正在生成它并呈现 html。

      如果您不熟悉烧瓶,您应该查看这个完整的教程。它将向您展示如何创建表单和接收数据:

      http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

      http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iii-web-forms

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-22
        • 2016-07-23
        • 2011-10-30
        • 2015-03-30
        • 1970-01-01
        • 2022-01-08
        • 2012-12-08
        相关资源
        最近更新 更多