前提:
~~~
url(r'^app/', include('app.urls',namespace='app')),
url('^relation',views.relation,name='relation'),
~~~
模板函数中的反向解析:
~~~
<a href="{% url 'app:relation' %}">相对路径3</a>
~~~
无论url怎么改变,只要视图函数的名称不变,模板都可以反向解析到该视图函数。
若url中是非关键字参数:
~~~
url('^bbb/(\d+)/(\d+)/(\d+)',views.bbb,name='bbb'),
~~~
反向解析按照顺序传参数:
~~~
<a href="{% url 'app:bbb' 2099 99 99 %}">相对路径4</a>
~~~
若url中是关键字参数:
~~~
url('^ccc/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)',views.ccc,name='ccc'),
~~~
反向解析可以不按照顺序传参数,但传参时要写关键字:
~~~
<a href="{% url 'app:ccc' month=10 day=13 year=2000%}">相对路径5</a>
~~~
视图函数重定向的反向解析:
~~~
url('^fromHere',views.fromHere),
url('^toHere',views.toHere,name='toHere'),
~~~
视图函数中的写法:
~~~
def fromHere(request):
return redirect(reverse('app:toHere'))
def toHere(request):
return HttpResponse('到这啦')
~~~
这样无论url中的toHere怎么改变,只要视图函数名叫toHere就可以重定向到它。
若url中是非关键字参数:
~~~
url('^fromHere',views.fromHere),
url('^toHere/(\d+)/(\d+)/(\d+)',views.toHere,name='toHere'),
~~~
视图函数中的写法:
~~~
def fromHere(request):
return redirect(reverse('app:toHere',args=(2018,8,8)))
def toHere(request,year,month,day):
return HttpResponse(str(year) + "年"+str(month) +"月"+str(day)+"日")
~~~
若url中是关键字参数:
~~~
url('^fromHere',views.fromHere),
url('^toHere/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)',views.toHere,name='toHere'),
~~~
视图函数中的写法:
~~~
def fromHere(request):
return redirect(reverse('app:toHere',kwargs={"year":2020,"month":10,"day":10}))
def toHere(request,year,month,day):
return HttpResponse(str(year) + "年"+str(month) +"月"+str(day)+"日")
~~~
- Python学习
- Python基础
- Python初识
- 列表生成式,生成器,可迭代对象,迭代器详解
- Python面向对象
- Python中的单例模式
- Python变量作用域、LEGB、闭包
- Python异常处理
- Python操作正则
- Python中的赋值与深浅拷贝
- Python自定义CLI三方库
- Python并发编程
- Python之进程
- Python之线程
- Python之协程
- Python并发编程与IO模型
- Python网络编程
- Python之socket网络编程
- Django学习
- 反向解析
- Cookie和Session操作
- 文件上传
- 缓存的配置和使用
- 信号
- FBV&&CBV&&中间件
- Django补充
- 用户认证
- 分页
- 自定义搜索组件
- Celery
- 搭建sentry平台监控
- DRF学习
- drf概述
- Flask学习
- 项目拆分
- 三方模块使用
- 爬虫学习
- Http和Https区别
- 请求相关库
- 解析相关库
- 常见面试题
- 面试题
- 面试题解析
- 网络原理
- 计算机网络知识简单介绍
- 详解TCP三次握手、四次挥手及11种状态
- 消息队列和数据库
- 消息队列之RabbitMQ
- 数据库之Redis
- 数据库之初识MySQL
- 数据库之MySQL进阶
- 数据库之MySQL补充
- 数据库之Python操作MySQL
- Kafka常用命令
- Linux学习
- Linux基础命令
- Git
- Git介绍
- Git基本配置及理论
- Git常用命令
- Docker
- Docker基本使用
- Docker常用命令
- Docker容器数据卷
- Dockerfile
- Docker网络原理
- docker-compose
- Docker Swarm
- HTML
- CSS
- JS
- VUE