Flask路由

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2016/11/22 下午3:51
# @Author : Dwk
# @File : flask_route.py

from flask import Flask

# 创建一个Flask类的实例
app = Flask(__name__)


# 使用 route() 装饰器告诉 Flask 什么样 的URL 能触发我们的函数

@app.route('/')
def index():
return 'Index Page'


@app.route('/hello')
def hello():
return 'Hello, World'

# 要给 URL 添加变量部分,你可以把这些特殊的字段标记为 <variable_name>。
# 这个部分将会作为命名参数传递到你的函数。
# 规则可以用 <converter:variable_name> 指定一个可选的转换器。

@app.route('/user/<username>')
def show_user_profile(username):
return 'User %s' % username


@app.route('/post/<int:post_id>')
def show_post(post_id):
return 'Post %d' % post_id

# 虽然它们看起来着实相似,但它们结尾斜线的使用在 URL 定义 中不同。
# 第一种情况中,指向projects的规范URL尾端有一个斜线。
# 这种感觉 很像在文件系统中的文件夹。
# 访问一个结尾不带斜线的 URL 会被 Flask 重定向到带斜线的规范 URL 去。

# 然而,第二种情况的 URL 结尾不带斜线,类似 UNIX-like 系统下的文件的 路径名。
# 访问结尾带斜线的 URL 会产生一个 404 “Not Found” 错误。

# 这个行为使得在遗忘尾斜线时,允许关联的 URL 接任工作,与 Apache 和其它的服务器的行为并无二异。
# 此外,也保证了 URL 的唯一,有助于 避免搜索引擎索引同一个页面两次。

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


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