filter获得路径内置参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了filter获得路径内置参数相关的知识,希望对你有一定的参考价值。

Filter获得路径内置参数是指在路径中设置一些参数,以便在过滤器中使用。这些参数可以是任何类型的数据,比如字符串、数字、布尔值等。这些参数可以用来控制过滤器的行为,比如控制过滤器是否执行,或者控制过滤器的输出结果。使用这些参数,可以让开发人员更好地控制过滤器的行为,从而更好地实现自己的需求。 参考技术A 通过filter获取路径内置参数,可以使用request.getAttribute(“path”)方法,该方法可以获取路径中的参数,并将其作为一个字符串返回。另外,也可以使用request.getParameterMap()方法,该方法可以获取路径中的参数,并将其作为一个Map返回,从而可以获取指定参数的值。 参考技术B filter获得路径内置参数:Filter中获取传递参数
1. GET 传递
参数可以直接通过request.getParameter获取。
2. Post 传递
产生不能过直接从request.getInputStream() 读取,必须要进行重新写。(request.getInputStream()只能够读取一次)
方式:
通过重写 HttpServletRequestWrapper 类 获取getInputStream中的流数据,然后在将body数据进行重新写入传递下去。
参考技术C 使用$route.params获取路由参数,例如:

this.$route.params.id // 获取id参数

map内置函数lambda表达式快捷生成想要的列表filter内置函数

  map函数                            

语法

  map(function, iterable, ...)

参数

  • function -- 函数,有两个参数
  • iterable -- 一个或多个序列

返回值

  Python 2.x 返回列表。

  Python 3.x 返回迭代器。

1 def square(x) :            # 计算平方
2     return x ** 2
3 
4 map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
5 
6 # 使用lambda表达式
7 map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
8 
9 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

  lambda                            

使用lambda表达式实现三目运算符

1 # 要实现的效果
2 if 0 == 0:
3     name = "timo"
4 else:
5     name = "nana"
6 
7 # lambda实现   如果if条件成立,name等于if前面的值,否则等于后面的
8 name = "timo" if 0 == 0 "nana"

使用lambda表达式实现简单的函数

 1 # 要实现的效果
 2 def func(arg):
 3     return arg + 1
 4 
 5 # 执行
 6 func(123)
 7 
 8 
 9 # 使用lambda表达式实现 lambda后面紧跟着的是函数的参数,冒号后面跟着的是返回值
10 lambda_func = lambda arg: arg + 1
11 
12 # 执行
13 lambda_func(123)

  快捷生成想要的列表                        

生成一个步长为5的列表

1 arr = [x*5 for x in range(5)]
2 # 得到结果
3 arr = [0, 5, 10, 15, 20]

结合lambda表达式生成列表

 1 # 第一种情况
 2 f0, f1, f2 = [lambda m: m*i for i in range(3)]
 3 
 4 f0(1) == f1(1) == f2(1) == 2
 5 
 6 
 7 # 第二种情况
 8 
 9 f = [lambda m: m*i for i in range(3)]
10 
11 for l in f:
12     l(1),    
13 
14 # 结果 2 2 2
15 
16 
17 # 第三种情况
18 
19 f = (lambda m: m*i for i in range(3))
20 
21 for l in f:
22     l(1),    
23 
24 # 结果 0 1 2
25 
26 
27 # 第四种情况
28 
29 f0, f1, f2 = (lambda m: m*i for i in range(3))
30 
31 f0(1) == f1(1) == f2(1) == 2

关于上面四种情况出现不同结果的原因

第三种情况不是元组,而是返回一个生成器,在调用 l(1)  的时候,是在生成器执行过程之中,所以函数 l  中的 i 变量随着生成器的迭代在变化,所以最终结果会有变化。
而第四种情况一下把生成器迭代完了,和第一第二种类似,都是所有代码都执行完了,i 都处于最后一个值 2, 所以值没有变化.

  filter内置函数                            

描述

  filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

  该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

语法

    filter(function, iterable)

参数

 

  • function -- 判断函数。
  • iterable -- 可迭代对象。

返回值

  返回列表。

实例

 

1 def fun(s):
2     if s != a:
3         return s
4 str = [a, b, c]
5 res = filter(fun, str1)            #过滤到字符a
6 
7 print(res)            #返回一个可迭代对象

 

以上是关于filter获得路径内置参数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenAPI (Swagger) 中为同一路径定义不同的查询参数?

php 路径获得最后一个参数

python3 根据完整路径获得盘名/路径名/文件名/文件扩展名的方法

python3 根据完整路径获得盘名/路径名/文件名/文件扩展名的方法

从容器请求中提取路径参数

shiro框架学习-6-Shiro内置的Filter过滤器及数据加解密