Flask 重定向到动态url
url_for() 函数是动态构建一个网址给特定的功能是非常有用的。该函数接受函数的名称作为第一个参数,并接受一个或多个关键字参数,每个参数对应于URL的变量部分。
以下脚本演示了使用 url_for() 函数。
from flask import Flask, redirect, url_for
app = Flask(__name__) @app.route('/admin')
def hello_admin():
return 'Hello Admin' @app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest @app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name)) if __name__ == '__main__':
app.run(debug = True)
上面的脚本有一个函数 用户(名称) ,它接受来自URL的参数值。
hello_user() 函数检查参数接收匹配 “admin” 与否。如果匹配,则使用 url_for() 将应用程序重定向到hello_admin() 函数,否则将该接收的参数作为guest参数传递给 hello_guest() 函数。
保存上面的代码并从Python shell运行。
打开浏览器并输入URL - http:// localhost:5000 / user / admin
浏览器中的应用程序响应是 -
Hello Admin
在浏览器中输入以下URL - http:// localhost:5000 / user / mvl
应用程序响应现在变为 -
Hello mvl as Guest 其它:
- 关于url_for函数解析:
url_for('hello_guest',guest = name)
看一下函数的定义:

url_for函数有2个参数,hello_guest代表视图函数的名字,另一个则是**values关键字参数,它的值应该是key = value形式,如果直接传值就会报下面这样的错。
python会把name当作一个位置参数,而不是关键字参数

- **values可选参数的变量名应该与url_for指向的视图函数(hello_guest)中的变量名(guest)保持一致,否则会报运行时错误:werkzeug.routing.BuildError,flask会给出提示你是否忘记了关键字变量名是guest

如果视图函数的名字也写错呢?
报错如下:
werkzeug.routing.BuildError
werkzeug.routing.BuildError: Could not build url for endpoint 'hello_guaaaest' with values ['a']. Did you mean 'hello_guest' instead?

文章出处:http://codingdict.com/article/4868
Flask 重定向到动态url的更多相关文章
- flask之配置文件的加载和动态url的使用
七行代码实现一个flask app from flask import Flask app = Flask(__name__) @app.route('/') def helloworld(): re ...
- flask动态url规则
动态URL规则 URL规则可以添加变量部分,也就是件更符合同规则的URL抽象成一个URL模式. @app.route('/item/<id>') def item(id): return ...
- 如何利用动态URL提升SEO及处理业务逻辑
如果你正在建设一个新网站或者对现有网站重新设计,我们认为应该将网站的 URL 转换为用户友好的 URL,或搜索引擎友好的 URL,这类 URL 也称为语义 URL(Semantic URL).哪些UR ...
- 关于动态URL地址设置静态形式
动态URL地址:http://station.com/index.php?c=play&a=index&id=12345 静态URL地址:http://station.com/play ...
- django"动态网页","动态url","调试方法"
一.动态网页 其实只是每次刷新时,获取最新时间而已 1.urls.py from django.conf.urls import patterns, url, include urlpatterns ...
- springboot集成shiro和开涛的动态url问题
我出现的问题就是一旦/**=authc不管放到前面还是后面都会把所有的资源全部拦截,css和js都访问不到,只需要把开涛的动态url代码改一下就行了(如上图)
- stark组件之处理函数动态url构造(五)
在这个组件中有内置的4个处理函数,它们都有自己对应的url,那么它们的url是怎么构造的呢? ... urlpatterns = [ re_path('list/$', self.wrapper(se ...
- Spring Security 动态url权限控制(三)
一.前言 本篇文章将讲述Spring Security 动态分配url权限,未登录权限控制,登录过后根据登录用户角色授予访问url权限 基本环境 spring-boot 2.1.8 mybatis-p ...
- 动态URL是什么?动态URL有什么特点?
动态URL是什么动态URL就是动态页面,动态链接,即指在URL中出现“?”这样的参数符号,并以aspx.asp.jsp.php.perl.cgi为后缀的url. 动态URL有什么特点1.在建设反向链接 ...
随机推荐
- python基础-9.1 面向对象进阶 super 类对象成员 类属性 私有属性 查找源码类对象步骤 类特殊成员 isinstance issubclass 异常处理
上一篇文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象 ...
- 监听器 ServletRequestAttributeListener&ServletRequestListener详解
在web开发中,监听器不仅可以对Application监听,同时还可以对seesion和request对象进行监听: 该文章主要演示的是对request对象的创建和request属性的监听. 项目结构 ...
- Developer Express 第三方控件使用系列方法
本人目前从事的开发工作主要是以C#语言进行的相关C/S的开发,在工作中也要求使用Developer Express第三方控件所以这一系列的控件使用说明都将以C#语言进行代码说明.平时工作中会慢慢的收集 ...
- ajax传文件用express的multer接住
html部分: //input type设为file <input type="file" name="file" id="fileInputE ...
- dfs(枚举)
http://codeforces.com/gym/100989/problem/L L. Plus or Minus (A) time limit per test 1.0 s memory lim ...
- docker pull使用 代理
[root@fdfs- ~]# cat /usr/lib/systemd/system/docker.service [Unit] Description=Docker Application Con ...
- Python 内置函数raw_input()和input()用法和区别
我们知道python接受输入的raw_input()和input() ,在python3 输入raw_input() 去掉乐,只要用input() 输入,input 可以接收一个Python表达式作为 ...
- 前端写代码自动刷新神器Browsersync
Browsersync能让浏览器实时.快速响应您的文件更改(html.js.css.sass.less等)并自动刷新页面. 更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试 ...
- 利用vsftpd在Linux构建安全的FTP服务
最近在机房搭建Linux环境,需要用到了FTP服务,查看了许多的资料,在这里做一下笔记 一.安装 方法一,使用yum命令安装,需要能够连接外网 # yum install vsftpd 方法二,使用安 ...
- Webstorm上已有的本地项目上传到Github
1.Webstorm左上角File —— Settings—— Github, Auth Type改成password,在Login和Password中输入自己的github账户和密码,点Test测试 ...