Django学习记录之——路由层

路由分发

1.路由分发
   - 每一个应用都可以有自己的templates文件夹,urls.py,static文件夹
       - 这个特点可以实现分布开发,每个应用之间互相不干扰
       - 在所有的应用开发完成后,在总路由文件urls.py中配置即可
   - 当项目中的url特别多的时候代码冗余,这时也可以使用路由分发来减轻总路由的负担
   - 实现路由分发:
        首先分别在不同的app中创建路由,编写视图函数,然后在主函数中分发路由实现方式如下
        路由分发主要是用include来导入
        
- 方式一
            from django.urls import path, re_path, include
            from app01 import urls as app01_urls
            from app02 import urls as app02_urls
            # 路由分发
            # 只要是app01开头都会交给app01的路由
            re_path(r'^app01/', include(app01_urls)),
            re_path(r'^app02/', include(app02_urls)),
        
- 方式二
            无需导入app中的路由,直接引用
            # 路由分发方式二
            # 总路由里的正则表达式不能加$ 否则会匹配不到后面的地址
            re_path(r'^app01/', include('app01.urls')),
            re_path(r'^app02/', include('app02.urls')),

名称空间

2.名称空间(了解)
    - 当许多个应用中出现了相同的别名时 Django不会自动识别是哪个app中的名称,
只会返回路由列表中第一个符合的路由
        - 这里反向解析无法识别出哪一个
            /app02/home/
            [23/May/2021 23:47:05] "GET /app02/home/ HTTP/1.1" 200 10
            /app02/home/
            [23/May/2021 23:47:09] "GET /app01/home/ HTTP/1.1" 200 10
        - 在总路由中加上名称空间能正确识别
             re_path(r'^app01/', include(('app01.urls', 'app01'), namespace='app01')),
             re_path(r'^app02/', include(('app02.urls', 'app02'), namespace='app02')),

             print(reverse('app01:home'))
             print(reverse('app02:home'))
            /app02/home/
            [24/May/2021 00:10:07] "GET /app02/home/ HTTP/1.1" 200 10
            /app01/home/
            [24/May/2021 00:10:11] "GET /app01/home/ HTTP/1.1" 200 10
        - 前段的反向解析使用
            {% url 'app01:home'%}
            {% url 'app02:home'%}
        - 实际开发中一般不需要名称空间 只要在每个app中路由的别名前加上app名称的前缀即可

伪静态

3.伪静态
    - 静态网页
        数据是写死的,不会改变
    - 伪静态
        将动态网页伪装成动态网页
    - 伪装的目的是增大笨网站的seo查询力度,并且增加搜索引擎搜藏本网站的概率
    - 无论怎么优化,都玩不过RMB玩家
    - 实现伪静态的方式
        re_path(r'^home.html', views.home, name='home')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值