Django3中的urls.py文件层级规划include的使用

machine
├── machine
│   ├── asgi.py
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── settings.cpython-36.pyc
│   │   └── urls.cpython-36.pyc
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── mainsite
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       ├── 0001_initial.cpython-36.pyc
│   │       └── __init__.cpython-36.pyc
│   ├── models.py
│   ├── templates
│   │   ├── base.html
│   │   ├── footer.html
│   │   ├── header.html
│   │   ├── report.html
│   │   ├── search.html
│   │   └── show.html
│   ├── tests.py
│   ├── urls.py

以上面的文件结构为例,上面的django项目名称为:machine,machine文件夹下面有两个文件夹:machine文件夹是整个项目的主文件夹,和项目同名,mainsite是一个Django3的app(应用)。
朱文件夹中有一个urls.py文件,是整个项目的入口文件模板,所有的访问首先会依次匹配这个文件中定义的路径。
我们如果有很多个app,不可能把所有app的众多路径都写在这个主文件夹的urls.py里面,这样太多也不便于管理。于是我们在主urls.py文件里面只写到各个app中urls.py文件的引用,每个app再单独写自己的urls.py。
主urls.py文件内容:

from django.contrib import admin
from django.urls import path, include, re_path
from mainsite import views as mainsite

urlpatterns = [
    path('admin/', admin.site.urls),
    path('search/', include('mainsite.urls')),
    path('universe/', include('universe.urls')),

这里有几个地方要注意:
1、一定要导入include

from django.urls import path, include, re_path

2、
include的使用方式,是项目别名.urls,别名已经在上面引用的时候定义,可以和项目同名

path('search/', include('mainsite.urls')),

3、path的第一个参数可以任意制定,不需要和app同名
4、如果第一个参数不以 / 结尾,那么这里的路径会和app中的路径无间隔的拼接在一起
5、如果path的第一个单数为’',即为空,那么include进来的app中的路径即为域名后的第一级路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值