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.在建设反向链接 ...
随机推荐
- document.domain location.hostname location.host
document.domain location.hostname location.host :https://www.cnblogs.com/shd-study/p/103031 ...
- JVM调优 dump文件怎么生成和分析
1.获取JVM的dump文件的两种方式 1. JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: - ...
- Angular.js 使用$http的response得到的phone属性为undefined
这是个坑~ 先说解决方案:把response打印出来找你的属性 记录一下,经验不足,有些东西想当然了,所有错误出现都应该一步步去排查!!!切记想当然的自以为. 源码: js $scope.phone= ...
- vue访问外部接口设置代理,解决跨域(vue-cli3.0)
vue-cli3.0搭建的项目,平时访问内部接口配置了拦截器,今天需要调用天气预报的外部接口,发现跨域问题,通过配置代理解决. 1.在vue.config.js中配置代理 module.exports ...
- openstack stein部署手册 10. horzion
# 安装程序包 yum install -y openstack-dashboard # 变更配置文件 /etc/openstack-dashboard/local_settings 变更以下 OPE ...
- Cookie-based认证实现
(使用ASP.NET 4.X 中的时候一定都用过Forms认证即FormsAuthentication做登录用户的身份认证,FormsAuthentication的核心就是Cookie,ASP.NET ...
- Multisim
万用表 测量电压.电流.电阻 直流.交流 函数发生器XFG 正极.负极.公共端 可以产生正弦波.三角波和矩形波,可以设置信号参数:频率.占空比.幅度和偏移量等 示波器XSC 双通道示波器 4个连接点, ...
- k8s手动安装-1
1.组网master可以使用双网卡,一个外网网卡连接外网,并且做proxy server,一个host-only网卡和node连接. 新版vitualbox配置host-only需要在主机网络管理器中 ...
- SpringBoot 参数校验
一.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- proxyTable-后端代理-跨域请求数据
config >>> index.js 配置 proxyTable: { '/api': { target:'https://api.jisuapi.com', // 你请求的第三 ...