加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

doraemon的python django框架的路由详解(国庆大更新)

发布时间:2020-12-20 10:22:11 所属栏目:Python 来源:网络整理
导读:# ## 11.8 路由 # ### 11.8.1 urlconf ```python from django.conf.urls import url from app01 import viewsurlpatterns = [ url(r ‘ ^admin/ ‘ ,admin.site.urls), # 这里用到了正则 url(r ‘ ^home ‘ ,views.home,{},name= ‘ home ‘ ),]``` # ### 11
### 11.8 路由

#### 11.8.1 urlconf

```python
from django.conf.urls import url
from app01 import views
urlpatterns = [
    url(r^admin/,admin.site.urls),#这里用到了正则
    url(r^home,views.home,{},name=home),]
```

#### 11.8.2 分组和命名分组

url上捕获的都是字符串

分组

```python
url(r^blog/([0-9]{4})/(d{2})),views.blogs,name=blogs)
    
#以括号为单位,捕获到的参数会按照位置传参传递给视图函数
```

命名分组

```python
url(r^blog/(?P<year>[0-9]{4})/(?P<month>d{2})),name=blogs)
    
#捕获的参数会按照关键字传参传递给视图函数
```

传递参数

```python
url(r^home/(?P<year>d{4})$),{year:2019,name=home})
```



#### 11.8.3 路由分发

```python
from django.conf.urls import url,include
from django.contrib import admin
from app01 import views
urlpatterns = [
    url(r^admin/,#这里用到了正则
    url(r^app01,include(app01.urls,namespace=app01)),url(r^app02,include(app02.urls,namespace=app02)),]
```

#### 11.8.4 url的命名和反向解析

静态路由

```python
url(r^home/$,name=home)
```

反向解析:

- 模板   {% url blog %}   ------>app01/home/
- py文件 

```python
from django.urls import reverse
reverse(home)  ---->app01/home/
```

分组:

```python
url(r^blog/([0-9]{4})/(d{2})),name=blogs)
```

反向解析:

- 模板  {% url blog 2019 06%}   ------>app01/blog/2019/06
- py文件

```python
from django.urls import reverse
reverse(blogs,args=(2019,06))  ---->app01/blog/2019/06
```

命名分组:

```python
url(r^blog/(?P<year>[0-9]{4})/(?P<month>d{2})),name=blogs)
```

反向解析:

- 模板
  - {% url blog 2019 06%}   ------>app01/blog/2019/06   按照位置传参
  - {% urlblogs year=2019 month=06 %}-----> app01/blog/2019/06   按照关键字传参
- py文件

```python
from django.urls import reverse
reverse(blogs,06))  ---->app01/blog/2019/06
from django.urls import reverse
reverse(blogs,kwargs=(year=2019,month=06))  ---->app01/blog/2019/06
```



#### 11.8.5 namespace

```python
 url(r^app01,```

应用

```python
{% url app01:home %}   #在模板中应用,一定要加上namespace
reverse(app01:home)    #在py文件中应用,一定要加上namespace
```

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读