定义
app.route()是Flask框架中用于定义路由的装饰器函数,将url与函数绑定,实现映射。
参数
app.route(rule, view_func, methods, endpoint, defaults, host, strict_slashes, subdomain, redirect_to)
除rule和view_func为必选项外,其他参数均可选。
rule:定义url规则的字符串,表明url路径,为路由分发的请求路径
静态:/index / /base等
动态:/index/<name> 参数<name>接收字符串和数字类型
如/index/<int:id>指定接收int型
view_func:指定要执行的视图函数(处理请求的函数)
一个仅包含两个必选参数的例子
@app.route('/index')
def index():
return 'Hello, World!'
其中,index就是处理请求的函数,即view_func参数。在匹配到/index时index函数会被调给view_func,由此将路由与视图关联,以便匹配相应的url。
methods:定义允许的HTTP请求方式,可选值为['GET','POST']。参数可迭代,不区分大小写,默认为GET
endpoint:为路由定义一个唯一的端点名称,用于反向生成url。路由映射视图函数,不指定时默认为视图函数名。view_func以{endpoint:view_func}存储。
defaults:默认值。
host:限制路由匹配主机
strict_slashes:True/False。设置是否严格路由路径匹配,默认为不严格(False)
subdomain:限制只匹配特定子域名
redirect_to:永久重定向url
一个最小的Flask应用
from flask import Flask
#导入flask类
app = Flask(__name__)
#创建该类实例,__name__是适用于大多数情况的快捷方式
#处理url和视图关系的程序即为路由
#使用 route()装饰器来告诉Flask触发函数的url
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
#返回需在浏览器显示的信息,默认为HTML
# 启动一个本地开发服务器,激活该网页
app.run()
#或用flask 命令(命令行运行):flask --app 该py文件名(不带后缀) run
#该命令在后面加--debug可启用调试
#--app 参数用于指定如何载入应用
#具体参看https://dormousehole.readthedocs.io/en/latest/cli.html