django框架基础-路由系统-长期维护-20200115

##################   路由系统     #######################

##################   路由系统     #######################

##################   路由系统     #######################

##################   路由系统     #######################

##################   路由系统     #######################

路由系统,url.py

from django.conf.urls import url

urlpatterns = [
url(正则表达式, views视图函数,参数,别名),
]

前两个用的最多,第三个参数基本不用,别名在反向解析的时候有用,

就是路径和函数的对应关系,

路由系统可以看成支撑你这个网站的目录,就像是一本书一样,

这个url对应关系,就是路由系统,
1,在django2.0中不再是url,而是path,其他的都一样,
2,url里面有四个部分,url(正则表达式,函数,参数,别名)
3,正则表达式,这一个就可以玩出很多的花样来,有时间需要再研究一下正则表达式,这个很有用,
可以把参数写成正则表达式的形式,这个有时间后面看看,

4,分组匹配,相当于给视图传递位置参数

5,可以分组命名匹配,相当于给视图传递关键字参数,

两个不能混着用,会覆盖的,

这两个我总感觉以后做项目的时候会经常用到,到公司了之后要看看前辈怎么写的,

--------------------------------------------------

现在写的路由文件,都是在一个文件写的,是在项目的url.py文件写的,

如果app,多了之后,就要做分组了,

现在新建一个app,怎么添加一个新的app?

下面回顾一下,

1,先新建,python manage.py startapp app02

2,第二步,在setting里面告诉django我新建了一个app

url(r'^app01/', include(urls))
#先从一级路由开始找,然后到二级路由,
#这种在项目中app比较多的时候会用到,没有必要非要用这种形式,写代码不需要一定要用上,有多个app的时候用,如果只有一个app不需要用这个,
# 这个时候访问的时路径就不应该直接是book了,需要在前面加上app01

-------------------------------------------------------

反向解析URL,

模板下面可以添加文件夹,只是到时候跳转的时候把文件夹写上而已,就是这么简单,

url现在很多都是写死的,但是如果动了之后很容易影响一大片,怎么办?

可以对url起一个别名,然后反向解析成url,,反向解析,听起来比较高级,

实际工作中很少去改动这个url的,不对,但是不排除,因为路径就是有人想要改,

两种方式,

1,怎么样在html文件里面反向解析url,

<p><a href="{% url 'json_test' %}">测试一下别名的页面</a></p>

2,怎么样在视图函数里面反向解析url,

from django.urls import reverse

redirect_url=reverse('json_test')

print(redirect_url)
return redirect(redirect_url)

本质上就是给url起别名,然后通过别名拿到具体的url路径,

关键点,

1,怎么起别名,

2,如何使用,分两种情况,在html文件,在视图函数中,

------------------------------------------------------------------

命名空间

在app多的时候会用到,后面项目中再说,

#######################################################################################

1,路由系统回顾,

这种通过url传值,然后删除数据的方式,应该是比较常用的,

-------------------------------------------

反向解析url

在html文件中反向解析,就是使用找别名,然后去找对应关系,这种可以更加的灵活,这样改动页面链接的时候,代码是不用动的,

在view函数中反向解析,

两种方式,

1,怎么样在html文件里面反向解析url,

<p><a href="{% url 'json_test' %}">测试一下别名的页面</a></p>

带参数的:

<p><a href="{% url 'book' 2018 'sd' %}">带参数的url</a></p>

2,怎么样在视图函数里面反向解析url,

from django.urls import reverse

redirect_url=reverse('json_test')

print(redirect_url)
return redirect(redirect_url)

本质上就是给url起别名,然后通过别名拿到具体的url路径,

带参数的:

# redirect_url=reverse('book',kwargs={'year':2018,'title':'aa'}) #这种传参数的方式要记住,而且如果不传参数是会报错的,
# print(redirect_url)
# #这种是解析带参数的,

猜你喜欢

转载自www.cnblogs.com/andy0816/p/12197676.html
今日推荐