2、路由

一、装饰器的使用

route装饰器是用于把一个函数绑定到一个 URL 上

二、URL构造

变量规则

1、把一些特定的字段标记成,这些特定的字段将作为参数传入到函数中。

@app.route('/user/')
def show_user_profile(username):
    # 显示用户的名称
    return 'User %s' % username

2、也可以指定一个可选的转换器通过规则将变量值转换为特定的数据类型。

@app.route('/post/')
def show_post(post_id):
    # 显示提交整型的用户"id"的结果,注意"int"是将输入的字符串形式转换为整型数据
    return 'Post %d' % post_id

 

唯一 URLs / 重定向行为:

1、访问的url带斜线或者不带斜线都可以

@app.route('/projects/')
def projects():
    return 'The project page'

2、访问不带斜线的url会报错

@app.route('/about')
def about():
    return 'The about page'

用 url_for 生成 url

可以使用函数url_for()来针对一个特定的函数构建一个 URL 。它能够接受函数名作为第一参数,以及一些关键字参数, 每一个关键字参数对应于 URL 规则的变量部分。未知变量部分被插入到 URL 中作为查询参数。

三、HTTP方法

HTTP (也就是web 应用协议)有不同的方法来访问 URLs 。默认情况下,路由只会响应 GET 请求, 但是能够通过给 route() 装饰器提供 methods 参数来改变。

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        do_the_login()
    else:
        show_the_login_form()

HTTP方法(通常也称为“谓词”)告诉服务器客户端想要对请求的页面做什么。下面这些方法是比较常见的:

  • GET 浏览器通知服务器只获取页面上的信息并且发送回来。这可能是最常用的方法。
  • HEAD 浏览器告诉服务器获取信息,但是只对头信息感兴趣,不需要整个页面的内容。 应用应该处理起来像接收到一个 GET 请求但是不传递实际内容。在 Flask 中你完全不需要处理它, 底层的 Werkzeug 库会为你处理的。
  • POST 浏览器通知服务器它要在 URL 上提交一些信息,服务器必须保证数据被存储且只存储一次。 这是 HTML 表单通常发送数据到服务器的方法。
  • PUT 同 POST 类似,但是服务器可能触发了多次存储过程,多次覆盖掉旧值。现在你就会问这有什么用,有许多理由需要如此去做。考虑下在传输过程中连接丢失:在这种情况下浏览器和服务器之间的系统可能安全地第二次接收请求,而不破坏其它东西。该过程操作 POST 是不可能实现的,因为它只会被触发一次。
  • DELETE 移除给定位置的信息。
  • OPTIONS 给客户端提供一个快速的途径来指出这个 URL 支持哪些 HTTP 方法。从 Flask 0.6 开始,自动实现了该功能。

 

你可能感兴趣的:(Flask)