Django学习记录4——urls的简述

零之前言

我没有对Django的模式(MTV)有过多的描述,不理解可以去看看前面的视频,但是我写文章的时候,会考虑到没有进行过多的描述,所以会将这个模式给简单化小阐述一下。

这节内容,在千峰教育视频(P27~P30)里有更详细的描述

https://www.bilibili.com/video/av57516522?p=28

一.Url

Url顾名思义,你输入这个路由网址,我负责将你导向到我们的View视图函数里。而Url可以携带一些参数。

详见url的构成图片:

这个我们可以不用管,如果要获取后面的参数,一般可以用正则表达式来提取,或者有些事Get和Post带的东西,那就直接在视图里面可以获取的到。

所以带参数的Url,尽量写成Get访问,可以更方便的获取。

二.URL的反向解析

使用正则表达式,反向解析我们的Url。

好处一:可以不用修改我们的文件路径,直接修改名字就行。

好处二:可以获取Url里的参数,但是,我不用。。。

课件是这样说的:

url反向解析:

       在根urls中

  url(r'^views/', include('ViewsLearn.urls',namespace='view')),

       在子urls中

  url(r'^hello/(\d+)',views.hello,name='sayhello'),

在模板中使用

  <a href="{% url 'view:sayhello'  year=2017 %}">Hello</a>

  year 的位置如果不指定名称按顺序算,指定名称按=算

在视图中使用

  HttpResponseRedirect(reverse('view:sayhello',kwargs={}))

  kwargs是字典

 但是在2.0版本以上,我们一般这样使用,也是我基本上会使用的唯一语句:

from django.urls import path, re_path
from app import views

urlpatterns = [
    #path("hello/", views.hello),#这个就是硬编码,唯一路径匹配
    re_path(r"hello/", views.hello, name="hello"),#这个是反向解析
]

所以,我们对于Url可以理解成一句话,将网址指向一个view里的函数:

re_path(r"hello/", views.hello, name="hello")

MTV模式里的一部分:用户访问→urls→views

发布了63 篇原创文章 · 获赞 38 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u011017694/article/details/104107388