Web路由列表

什么是Web路由列表

在Web开发中,路由列表通常用于将请求的URL映射到相应的处理函数。尽管路由列表可以用不同的数据结构来实现,但在很多情况下是一个字典(在Python中)或其他类似的键值对结构。

路由列表(Django)

Django框架采用的路由列表方式是在模块中创建一个带有映射关系的字典,映射关系要自己写,适用于较少的映射关系

路由字典模块

from Test import route_function

route_dict = {
    "index.py": route_function.index,
    "center.py": route_function.center,
    "gettime.py": route_function.gettime
}

for item in route_dict:
    print(route_dict[item])
    route_dict[item]()

"""打印字典键的值可以看出,是一个函数的地址
<function index at 0x000001F05D2418A0>
<function center at 0x000001F05D241940>
<function gettime at 0x000001F05D2419E0>


函数的执行结果
This is index
This is center
This is gettime
"""

响应函数模块

def index():
    print("This is index")


def center():
    print("This is center")


def gettime():
    print("This is gettime")

路由装饰器(flask)

flask框架的路由列表采用的是装饰器方法来生成路由列表,需要创建一个装饰器工厂直接对处理函数进行装饰即可,适用于较多的映射关系

一个空字典模块

router_dict = {}

装饰器模块

from Test import urls


def router(path):
    """需要传入访问的路径,用于添加到路由字典的key"""

    def function_out(func):
        """需要传入函数,将函数的内存地址存到字典的value"""
        # 在此处将映射关系添加到字典最为合适
        # 因为,路径和函数在内存中的地址都已经出现了
        # 将映射关系添加到字典中
        urls.router_dict[path] = func

        def function_in():
            # 返回映射函数的地址
            func()

        return function_in

    return function_out


@router("index.py")
def index():
    print("This is index")


@router("center.py")
def center():
    print("This is center")


@router("gettime.py")
def gettime():
    print("This is gettime")

测试模块

from Test import urls
from Test import funs

print(urls.router_dict)
for item in urls.router_dict:
    print(urls.router_dict[item])
    urls.router_dict[item]()

"""
可以看到装饰器模块导入后,字典中的值被自动添加进去了
因为模块导入后会被加载到内存,在内存中,装饰器就已经开始生效了
{'index.py': <function index at 0x000001CD661519E0>, 
'center.py': <function center at 0x000001CD66151B20>,
 'gettime.py': <function gettime at 0x000001CD66151C60>}
 
 
<function index at 0x000001CD661519E0>
This is index

<function center at 0x000001CD66151B20>
This is center

<function gettime at 0x000001CD66151C60>
This is gettime
"""

相关推荐

  1. Web框架开发-Django的层(URLconf)

    2024-02-04 21:06:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-04 21:06:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-04 21:06:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-04 21:06:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-04 21:06:02       18 阅读

热门阅读

  1. C语言:简单排序

    2024-02-04 21:06:02       30 阅读
  2. Chapter 8 - 4. Congestion Management in TCP Storage Networks

    2024-02-04 21:06:02       31 阅读
  3. 力扣:77. 组合

    2024-02-04 21:06:02       29 阅读
  4. sql数据库修复资料

    2024-02-04 21:06:02       22 阅读
  5. 题目 1159: 偶数求和

    2024-02-04 21:06:02       25 阅读
  6. 海量微服务关联关系挖掘与告警拓扑展示

    2024-02-04 21:06:02       27 阅读
  7. React中的事件处理逻辑

    2024-02-04 21:06:02       31 阅读
  8. WiFi测试的核心思路和主要工具

    2024-02-04 21:06:02       27 阅读