python中flask(三)

python中flask(三)

这一部分主要围绕URL展开,主要内容是url_for和redirect(重定向)的使用。
1. url_for 函数使用:
我们通常会将url_for 称为url反转,相反的,我们使用URL来加载我们的视图函数就是所谓的正转。因此,反转是一种用函数获取其URL的方法。
例子就用上一部分的动态路由的代码,因为它的URL包含的比较丰富,既有静态也有动态。我们要使用前首先要先导入这个函数:import url_for

from flask import Flask, url_for

app = Flask(__name__)


@app.route('/')
def hello_world():
	print(url_for('user'))
	print(url_for('username', name='Jason')
    return 'Hello World!'

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


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

我们可以试着跑一下这段代码,网页自然是能正常跑出来的:
在这里插入图片描述

同时,我们在pycharm的终端中可以看见:
在这里插入图片描述

输出我们的两个print,分别为我们两个视图函数的URL。其中要注意的是,视图函数username包含一个变量name,所以我们在找它的URL之前首先需要传参,即给name赋值,才可以正常输出URL。
听起来url_for的作用不算大,实则不然。在下一部分页面重定向中就会用到,而且,在后面编写模版时也会用到它指定相关网页,方便直接载入。

2. 重定向
简单来说,页面重定向即是为了进行页面的跳转,让用户可以顺利跳转到他们想要的页面上去,而实现这个的函数就是,redirect()。如果我们想要实现重定向,首先我们要导入redirect和url_for。假设我们想要实现自动跳转:

from flask import Flask, url_for, redirect

app = Flask(__name__)

@app.route('/')
def hello_world():
    url_login=url_for('user')
    return redirect(url_login)
    return 'Hello World!'

@app.route('/user/')
def user():
    return 'Please enter your password'

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

我们将url_login作为user函数的URL,然后使用redirect(需要去页面的URL),就是redirect(url_login),记得要加return让它可以正常运行,这个时候,我们可以跑一下这段代码,然后点击终端中的URL:
在这里插入图片描述

可以发现输出的网页并不是我们之前的hello world而是第二个视图函数的please enter your name:
在这里插入图片描述

可以看到网址是自动改变成第二个函数的,而非我们终端输出的默认URL,这就是 网页的跳转。
值得一提的是,如果你想在redirect函数中直接输入URL也可以实现跳转,但是,如果它的URL变化的话就需要重新输入,我们指定一个变量就可以避免函数URL改变的问题,因为我们是通过函数名称来获得它的URL的,只要名称不变,URL再怎么变都不影响。
前三篇文章中,已经简单介绍了flask的基础使用,在下一部分,就要进入flask中重要的一环:jinja2模版。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值