Flask注册路由相关问题

下面主要对Flask的几种路由注册方式做简要介绍,以及说明一些使用过程中遇到的问题。

在Flask中使用Python装饰器来注册路由。装饰器的相关用法如下:在一个函数的上方加上@,@后则是所用的具体装饰器。 注册路由所用装饰器基本格式为:@app.route()

1.将一个url地址与视图函数绑定起来

在flask中编写的函数若想访问,则需通过url地址来访问。当我们在网址中输入一串地址后,后台会根据你的路由注册信息执行相应的视图函数。

@app.route('/')
def welcome():
    return 'Hello! Welcome to this website!'

上述装饰器中的参数是url的相对地址,“/”即根地址 (如localhost或127.0.0.0),而“/hello”即为127.0.0.0/hello

一个小问题:

在输入网址时,用户可能会在最末端输入一个“/”,如果想要响应这种地址,只需在路由注册时添加进去即可。

@app.route('/hello/')
def welcome():
    return 'Hello! Welcome to this website!'

在这种设置下,既能响应127.0.0.0/hello,又能响应127.0.0.0/hello/

2.将一个函数与多个url地址绑定

当输入不同的网址时,可以向用户展示相同的界面,例如,我们可以将上述两个地址绑定到一个函数上。

@app.route('/')
@app.route('/hello/')
def welcome():
    return 'Hello! Welcome to this website!'

你还可以绑定更多的url地址。

3.绑定动态url

当绑定过多的url时,如果它们可以提取为一个变量,我们为其绑定动态url。使用<变量>的形式来绑定。

@app.route('/greet/<name>/')
def greet(name):
    return 'Hello, %s!' % name

这样,我们就可以根据不同的name来显示相应的视图函数。比如:.../greet/Tom会显示Hello, Tom!、.../greet/Mary会显示Hello, Mary!

一个小问题:

当使用动态url时,如果用户没有输入相应的name值,则会出现404错误。此时,我们可以设置一个默认值来避免这种情况的发生:

@app.route('/greet/', defaults={'name': 'student'})
@app.route('/greet/<name>/')
def greet(name):
    return 'Hello, %s!' % name

此时,输入127.0.0.0/greet会显示默认界面:Hello,student!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值