Django之URL正则及反向代理
2019-02-27 20:33
148 查看
URL正则表达式及分组命名
-
使用正则和不使用正则匹配相同
re_path(r'^index/',views.index) def index(request): return render(request, 'index.html')
-
匹配空路径
-
分组匹配
re_path(r'^index2/(\d+)/',views.index2) #url传递参数,路径:http://127.0.0.1:8000/app01/index2/1 ('1'传给了page) def index2(request, page): print(page, type(page)) # 1<class 'str' >传递过来的类型是字符串 return render(request, 'index.html')
-
分组命名匹配
#url分组命名传递参数,路径http://127.0.0.1:8000/app01/index/1/,只是路由函数的名称必须和组名相同,即page相同url(r'^index3/(?P<page>\d+)/$', views.index3) def index3(request, page): return render(request, 'index.html')
同样 page可以给个默认值,即函数中定义page = '1’也是可以的
URL 反向代理
在使用 Django 项目时,一个常见的需求是获得URL的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。
人们强烈希望不要硬编码这些URL(费力、不可扩展且容易产生错误)
我们可以使用name属性进行反向代理
path('app1/',include('app1.urls')) #这条是主路由,用来指向子路由 path('index5/' ,views.index5, name = 'xxx') #这条为子路由,这里的name相当于一个标识 用来识别这条url #views中 def index5(request): return render(request, 'index5.html') #html中 <a href="/app1/index4/">点我到index4</a> <br> <a href="{% url 'xxx' %}">点我到index5</a> #这里URL代表当前的路由即app1,因此点击会直接跳转到主路由app1,然后去众多子路由中寻找name = 'xxx'的子路由,然后执行他的路由/index5/,视图函数,返回html。因此这里如果要改应用app1的名字,只需要修改主路由就可以了!!!
使用反向代理传递参数
相关文章推荐
- Django2.0 path与Django1.x版本url正则匹配问题
- Django框架学习笔记(7.基于正则表达式的URL)
- DJango2.0版本后 url正则问题
- django 基于正则表达式的url
- Django基于正则表达式的URL(2)
- Django基于正则表达式的URL(1)
- Django的路由系统|URL配置、正则表达式、分组命名、命名空间、命名URL反向解析
- Django2.0版本 path与Django1.x版本url正则匹配问题
- 在Django中URL正则表达式匹配的方法
- Django中URL正则表达式匹配
- DJango中urls的配置,及获取url中正则匹配到的信息
- django的url 正则表达
- django2.1 url正则表达式问题
- Django框架教程之正则表达式URL误区详解
- Django基于正则表达式的URL
- Django基于正则表达式的URL(2)
- php使用正则表达式获取字符串中的URL
- 利用正则表达式 替换字符串中多个 URL
- Django之URL(路由系统)用法
- IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)