我们都知道京东的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开发,不知不觉你就会明白接口测试的真正含义啦~

请关注公众号:自动化测试实战

flask第十四篇——重定向的更多相关文章

  1. Flask最强攻略 - 跟DragonFire学Flask - 第十四篇 Flask-SQLAlchemy

    前不久刚刚认识过了SQLAlchemy,点击这里复习一下 当 Flask 与 SQLAlchemy 发生火花会怎么样呢? Flask-SQLAlchemy就这么诞生了 首先要先安装一下Flask-SQ ...

  2. flask第二十四篇——模板【6】自定义过滤器

    请关注孟船长的公众号:自动化测试实战 大家想了解其他过滤器可以参考这里: http://jinja.pocoo.org/docs/dev/templates/#builtin-filters ---- ...

  3. 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)

    解剖SQLSERVER 第十四篇    Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...

  4. 第十四篇 Integration Services:项目转换

    本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...

  5. Python之路【第十四篇】:AngularJS --暂无内容-待更新

    Python之路[第十四篇]:AngularJS --暂无内容-待更新

  6. 【译】第十四篇 Integration Services:项目转换

    本篇文章是Integration Services系列的第十四篇,详细内容请参考原文. 简介在前一篇,我们查看了SSIS变量,变量配置和表达式管理动态值.在这一篇,我们使用SQL Server数据商业 ...

  7. 跟我学SpringCloud | 第十四篇:Spring Cloud Gateway高级应用

    SpringCloud系列教程 | 第十四篇:Spring Cloud Gateway高级应用 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 ...

  8. SpringBoot第二十四篇:应用监控之Admin

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   前一章(S ...

  9. Egret入门学习日记 --- 第十四篇(书中 5.4~5.6节 内容)

    第十四篇(书中 5.4~5.6节 内容) 书中内容: 总结 5.4节 内容重点: 1.如何编写自定义组件? 跟着做: 重点1:如何编写自定义组件? 文中提到了重要的两点. 好,我们来试试看. 第一步, ...

随机推荐

  1. 【Python】模块学习之(__call__)实现准确计算函数运行时间

    背景 博主在写自动化的过程中,有遇到有的用例运行缓慢的问题,想起在上一家公司的的“自动化工厂”有一个指标:两小时内运行完所有的用例才算合格.所以想计算每一个用例的运行时间. 思路 因为使用的POM模型 ...

  2. FluentData,一个轻量级开源的.NET ORM数据持久化框架

    FluentData:一种使用Fluent API的新型轻量级ORM模型  FluentData 是微型 ORM(micro-ORM)家族的一名新成员,旨在比大型 ORM(full ORM)更加易用. ...

  3. vs 2017 保存文件 utf8

    vs 2017 保存文件 utf8 转自:https://blog.csdn.net/jiegemena/article/details/79369650

  4. [洛谷U62364]三次函数极值

    U62364 三次函数极值 题面 给定一个三次函数\(f(x)=a_3x^3+a_2x^2+a_1x+a_0\) 求其极值. 格式 输入包括一行四个整数\(a_3,a_2,a_1,a_0\) 输出包括 ...

  5. 1059: [ZJOI2007]矩阵游戏 二分图匹配

    https://www.lydsy.com/JudgeOnline/problem.php?id=1059 裸的二分图匹配,行列匹配即可 /****************************** ...

  6. spring注入的四种方式

    配置文件spring.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  7. day23 CMDB 深入讲解

    课前准备: https://www.getpostman.com/postman 内容: 1. cmdb资产自动更新2. api安全认证3. restfulAPI 4. 自定义用户认证 课堂笔记: 前 ...

  8. Python flask网站部署总结

    先开一贴,有空来总结下前段时间的网站部署情况.此次部署采用Gunicorn + Nginx + supervisor的组合在VPS环境中部署flask网站应用. Ubuntu环境准备 准备python ...

  9. Ubuntu 无法获得锁

    使用ubuntu安装pip 时,出现以下错误: E: 无法获得锁 /var/cache/apt/archives/lock – open (11 资源临时不可用) E: 无法锁定下载目录 解决方法: ...

  10. Web框架之Django-20-基于mysql数据库的连接

    Web框架之Django-20-基于mysql数据库的连接   想要连接mysql首先需要安装pymysql这个驱动     然后在app的init文件中引入驱动 import pymysql pym ...