flask之route中的参数
flask的路由中有一些参数
使用案例
from flask import Flask, render_template, url_for, session, request, redirect app = Flask(__name__)
app.secret_key = "wang" def confirm(func):
def inner(*args, **kwargs):
if session.get('auth'):
return func(*args, **kwargs)
else:
next_url = request.path[1:]
return redirect(url_for("login") + f"?next={next_url}") return inner @app.route('/', endpoint="index", redirect_to="/shopping")
@confirm
def index():
return "index" @app.route('/login/', methods=["GET", "POST"], defaults={"nid": 1001, }, strict_slashes=True)
def login(nid):
msg = ""
print("===>", url_for("index"))
# ===> /login, 当没有定义endpoint是, 可以直接写函数名, 当定义了
print("===>", nid)
# ===> 1001
if request.method == "POST":
auth = request.form.get("auth")
if auth:
session["auth"] = auth
next_url = request.args.get("next", "index")
return redirect(url_for(next_url))
else:
msg = "error"
return render_template("login.html", msg=msg) @app.route('/shopping/<int:year>/<string:month>', endpoint="shopping")
def shopping(year, month):
print(year, type(year), month, type(month))
# 1 <class 'int'> 2 <class 'str'>
return "Shopping" if __name__ == '__main__':
app.run(debug=True)
参数解析
重要的
endpoint="" 默认是函数名, 可以在app.route()的关键字参数中定义
url_for("") 反向地址, 通过视图函数名, 或endpoint解析对应的URL
methods=[] 该视图函数能处理的请求方式, 默认是GET, 当重新定义了methods, 那么默认的GET也会被覆盖
一般的
defaults={} 给视图函数传递参数, 可以作为默认参数, 传了就必须的接
strict_slashes=Bool 严格的使用"/", URL中没有"/", 访问时也不能有, URL中有"/", 你访问时没有, 会通过301进行永久重定向
redirect_to="" 永久重定向
动态路由参数
'/shopping/<int:year>/<string:month>' 路由中使用参数, 并可以转换参数的数据类型, 切记数字可以转字符串, 字符串不能转数字
flask之route中的参数的更多相关文章
- Flask系列03--Flask的路由 app.route中的参数, 动态参数路由
Flask–路由 添加路由的两种方式 第一种 @app.route("/my_de") def detail() 第二种(了解即可) app.add_url_rule(" ...
- python flask route中装饰器的使用
问题:route中的装饰器为什么感觉和平时使用的不太一样,装饰器带参数和不太参数有什么区别?被修饰的函数带参数和不带参数有什么区别? 测试1:装饰器不带参数,被修饰的函数也不带参数. def log( ...
- Flask中获取参数(路径,查询,请求体,请求头)
上一篇中已经讲述了:HTTP协议向服务器传参有几种途径{ 链接 } 在Flask中同样通过这4中传参途径进行归纳: 1. URL中路径参数的获取: 拓展: # 路由参数/路径参数:http://127 ...
- Flask中路由参数
Flask中路由参数.请求方式设置 一.参数设置 1.参数类型 Flask中参数的使用 @app.route('/parames/<username>/') def hello_world ...
- Flask系列02--Flask中的request
一.Flask中的request方法 1.数据相关 #flask中request,render_template等方法要通过引包的方式引入 from flask import request re ...
- Vue路由规则中定义参数
Vue使用routerLinke定义参数的时候 路由规则中不需要更改任何属性. 路由其实就是我们在html中定义的锚点,点击这个连接跳转一个锚点.vue中的路由也是这个原理, 前提是路由必须创建在实 ...
- 路由传值及获取参数,路由跳转,路由检测,this.$route.query和this.$route.params接收参数,HttpGet请求拼接url参数
配置动态路由参数id: routes: [ // 动态路径参数 以冒号开头 { path: '/user/:id', component: User } ] html路由跳转: <router- ...
- 每天一点点之vue框架开发 - vue-router路由在循环中携带参数
场景:要实现一个标签云,通过循环把标签渲染,然后单击标签的时候实现跳转,跳转路由一样,通过唯一参数来实现请求不同的数据 因此,就需要在for循环中来携带参数,本节所讲的是路由使用对象的形式(别名)来实 ...
- Vue router中携带参数与获取参数
Vue router中携带参数与获取参数 携带参数 query方式,就是?+&结构,例如/login?id=1 <router-link :to="{ name:'login' ...
随机推荐
- java自动生成jar包工具
jar -cfe Main.jar com.xjq.test.Main com/xjq/test/Main.class jar -cmef manifest.mf com.xjq.test.Main ...
- 网络基础-IP、端口等
首先来理解一下几个概念. 白帽子:有能力破坏电脑安全但不具恶意目的的黑客.白帽子一般有清楚的定义.道德规范并常常试图同企业合作去改善发现的安全弱点. 正义技术员. 灰帽子:对 ...
- SharePoint中遇到Timeout
使用SharePoint时会遇到不止一种的timeout(即超时)错误. 如果遇到了timeout, 该怎么区分呢? 大致上SharePoint可以控制和影响的timeout地方如下: 1. Shar ...
- swftools 将pdf转换swf常见问题说明
swftools将PDF转成swfSWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2 ...
- Selenium2学习(二)-- 操作浏览器基本方法
前面已经把环境搭建好了,这从这篇开始,正式学习selenium的webdriver框架.我们平常说的 selenium自动化,其实它并不是类似于QTP之类的有GUI界面的可视化工具,我们要学的是web ...
- create-react-app 打包后文件路径问题
在package.json 加入 "homepage": "需要的路径",
- python入门2 python字符串换行显示、字符串太长\连接多行
#coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 缩进 换行 """ &qu ...
- 转载:em(倍)与px的区别
转载出处:http://www.cnblogs.com/showker/archive/2010/05/24/1742821.html 在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理 ...
- 2018_MCM_ICM_C
- Velocity 模板
Velocity 模板引擎介绍 引:https://www.ibm.com/developerworks/cn/java/j-lo-velocity1/ 在 现今的软件开发过程中,软件开发人员将更多的 ...