美文网首页Flask交流
二、URL反转,页面跳转和重定向

二、URL反转,页面跳转和重定向

作者: 十柒年 | 来源:发表于2018-08-21 16:21 被阅读143次

1、内容回顾

上篇文章简单说明了一下如何创建一个flask web应用程序,输出了一个hello world,这篇文章就和大家一起学习下flask框架中的url反转,页面跳转,以及重定向。

2、URL反转

url反转就是通过视图名称获得url。所用的函数是url_for()。那url反转有什么用呢?一般url反转是和重定向一块使用的,比如我们的网站主页为www.a.com,用户个人资料页是 www.a.com/zhangsan/detail,如果用户没有登录直接输入 www.a.com/zhangsan/detail,能看到东西吗?应该是不能的,因为用户还没登录,所以应该是直接跳转到登录页面,这里面就用到了url反转和重定向,重定向下面会讲到。下面咱们看看如何反转。

@app.route('/')
def index():
    print(url_for('my_list'))
    print(url_for('article',id='aaaa'))
    return 'Hello World!'

这里面就是在运行index视图函数的时候,在pycharm控制台打印出/my_list,以及/article/aaaa,如图。


image.png

同时url_for()还可以用来加载文件,用VS2017,创建一个flask应用程序后可以发现在layout.html中写的有url_for()
,如图。


image.png

3、页面跳转

在地址栏输入不同的地址后,可以跳转到对应的页面。在这里我们先不添加页面,直接返回不同的字符串看看效果。代码如下

@app.route('/list/')
def my_list():
    return 'list'

@app.route('/article/<id>/')
def article(id):
    return u'请求的参数为:%s'% id

然后我们运行下,在浏览器地址栏接着输入 /list 会出现这个效果。


image.png

然后在浏览器输入/article/2,也出来了对应的字符串。这就是简单的页面跳转。


image.png

4、重定向

重定向使用的方法为redirect()。来看一段代码。

@app.route('/')
def index():
    return redirect('www.baidu.com')

这段代码运行的结果就是,页面打开直接跳转到了百度主页,这个就是重定向。说白了就是重新定义浏览器的地址。在看一段代码。

@app.route('/')
def index():
    login_url = url_for('login')
    return redirect(login_url)
    return u'这是首页'

这里就是先获取login视图函数所对应的url地址,然后重定向到这个地址。现在咱们回到上面的一个问题,如果用户还没有登录直接输入了www.a.com/zhangsan/detail,咱们该怎么做?请看代码。

@app.route('/question/<is_login>/')
def question(is_login):
    if is_login == '1':
        return u'发布问答页面'
    else:
        return redirect(url_for('login'))

运行试一下效果。现在我是刚输入了地址,还没按回车确定。


image.png

当我按下回车的时候,页面直接跳转到了登录页面


image.png
咱们在试一次,这个输入/question/1.
image.png

这次咱们看的输入/question/1就代表咱们是登录过了,就可以进行登录后的操作了,如果没有登录,则直接跳转到登录页面。

5、结语

好了,今天的代码就分享这么多。下篇文章教大家如何使用jinja2模板,以及如何向页面传递参数。
Study hard and make progress every day.

更多学习资料请关注"爱游戏爱编程"。


爱游戏爱编程.jpg

相关文章

  • 二、URL反转,页面跳转和重定向

    1、内容回顾 上篇文章简单说明了一下如何创建一个flask web应用程序,输出了一个hello world,这篇...

  • dianjo增删改查

    url views html url配置路径 页面的跳转 转换与url的重定向

  • 反转URL

    1.从视图函数到url的转换叫反转URL 2.反转url的作用: 1)页面重定向时会使用url反转; 2)模版中一...

  • 页面跳转 vs 重定向

    参考资料:response的页面重定向与request的页面跳转的区别 页面跳转:地址栏的url不变,页面内容改变...

  • Apache URL重定向配置专题

    Url重定向机制简述 Rewrite url重定向就是实现URL的跳转和隐藏真实地址,基于Perl语言的正则表达式...

  • 小程序传递参数的方法

    方法一:页面跳转或重定向时,使用url带参数传递数据代码如下: 方法二:跳底部tab栏 方法三 :本地缓存1.存数...

  • HttpResponse与cookie

    HttpResponse 属性一、render 渲染一个页面 属性二、redirect 重定向,跳转页面 属性三、...

  • URL跳转漏洞

    URL跳转漏洞(URL重定向漏洞),跳转漏洞一般用于钓鱼攻击。 原理:URL跳转漏洞本质上是利用Web应用中带有重...

  • Flask框架的url反转和页面重定向

    url反转: 首先导入url_for:from flask import Flask,url_for 例子:

  • python-Flask(模块)

    常用模块与用法 [TOC] Flask(主app) redirect(重定向),url_for(url反转) re...

网友评论

    本文标题:二、URL反转,页面跳转和重定向

    本文链接:https://www.haomeiwen.com/subject/pmkjiftx.html