flask第十四篇——重定向

我们都知道京东的url是www.jd.com,但是当你输入www.jingdong.com时候,你会发现地址自动跳转到了www.jd.com,这种技术手段就叫做重定向

重定向分为永久重定向临时重定向

像京东这种只要你输入www.jingdong.com就会跳转到另一个地址的情况就叫做永久重定向,也就是说京东不希望你再用这个地址了;而临时重定向则可能是判断你的登录状态,比如有一些网站你进入后会判断你是否登录,如果登录就跳转页面A,如果没登录就跳转页面B,这种就是临时重定向的情况(后面写项目的时候会用到,当然,讲的所有知识点都是为最后做项目做准备的)。

我们先来看一下源代码,先导入import redirect包,然后Ctrl+b,进入源码:

可以看到redirect方法传入三个参数,其中第二个参数code就是设置重定向类型的,302代表临时重定向301代表永久重定向,默认302。知道这些就够了。

接着我们看一下重定向的例子,这是一个简单的登录验证,如果用户传递了name就说明登录了(name通过查询字符串方式传递),如果没有传name就跳转到登录页面:

# coding: utf-8

from flask import Flask, url_for, redirect
import flask

app = Flask(__name__)  # type: Flask
app.debug = True

# 根目录
@app.route('/')
def hello_world():

    name = flask.request.args.get('name')
    if name:
        return u'您的用户名是:%s' % name
    else:
        # 跳转页面
        return redirect(url_for('login'))

@app.route('/login/')
def login():
    return u'这是登录页面'

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

我们到页面验证一下,你还记得什么是通过查询字符串的方式传参吗?还记得url_for的使用吗?这里就用到了这两个知识点哦~ 我们先进入127.0.0.1:5000以及看到地址自动变成了http://127.0.0.1:5000/login/也就是我们的重定向起作用了:

再通过查询字符串的方式给name传参:127.0.0.1:5000/?name=meng:

页面是我们模拟的登录后的页面。这就是一个简单的重定向啦~

  • 补充题外话

回看一下我们的控制台:

打印了上图内容,有没有觉得很眼熟?没错,这不就是我们整天说接口测试的接口吗!http请求方式是GET,参数是name。所以学flask开发,不知不觉你就会明白接口测试的真正含义啦~

原文发布于微信公众号 - 自动化测试实战(gh_839e78b6ba28)

原文发表时间:2018-03-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏源哥的专栏

客户端数据集/服务端数据集的原理和设计

最近在开发一个比较大型的项目,主要采用Activex控件做底层操作,采用Javascript做逻辑控制和处理,采用Ajax实现服务端与客户端之间的交互,而在实际...

884
来自专栏Java后端生活

Linux(八)用户管理

1839
来自专栏达摩兵的技术空间

linux之文件基本操作学习笔记

通过本教程你将熟悉linux文件的基本操作以及其具体使用。本文目录结构摘抄自《鸟哥的LINUX私房菜》基础学习篇(第三版)。

941
来自专栏Java帮帮-微信公众号-技术文章全总结

Java面试系列18-servlet

Servlet方面 01 说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期...

3478
来自专栏钟绍威的专栏

linux常用命令之文件管理默认情况选项参数注意用法选项用法选项用法参数注意用法选项用法选项注意用法选项注意

LS ls:list directory contents 默认情况 默认情况下显示的是mtime 选项 -a 列出全部文件及目录包括隐藏的 -l 列出详细...

1779
来自专栏我是攻城师

kafka版本不一致导致的一个小问题(二)

5728
来自专栏编程坑太多

「小程序JAVA实战」微信小程序工程结构了解(五)

PS:这就是对微信小程序工程结构的大致了解,了解了结构才方便按照规范开发,不容易入坑。

1061
来自专栏算法修养

Flask 学习笔记

Flask 是一个Web应用框架,我也就是一边看书,一边写博文做记录 这本书: ? 首先安装Flask ,和配置环境,参考这边博客: 然后就开始学习Flask ...

3027
来自专栏linux驱动个人学习

解析Linux中的VFS文件系统之文件系统的来源与简介(一)

最近挂载了N多的文件系统,大致了不同文件系统的相应特性及挂载方式,却还是对Linux的文件系统没有从源码方面去了解。不求甚解确实不好不好。 于是借鉴一些大牛的博...

4209
来自专栏xingoo, 一个梦想做发明家的程序员

【SVN多用户开发】代码冲突&解决办法

SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序。 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码。 下...

2235

扫码关注云+社区

领取腾讯云代金券