Django学习--urls.py详解

时间:2021-10-01 15:45:53
urls.py:又称为URL分发器(路由配置文件)
URL配置(URLconf)就形式Django所支撑网站的目录。他的本质是URL模式以及要为该URL模式调用的试图函数之间的映射表。开发者就是以这种方式告诉Django,对于这个URL调用这段代码,而那个URL调用那段代码。URL加载是从配置文件中开始的。
 
1.url配置格式:
    urlpatterns = patterns('视图前缀',  
        url(r'^正则表达式1/$', '视图函数1', name="url标识1"),  
        url(r'^正则表达式2/$', '视图函数2', name="url标识2"),  
    )  
 
 
patterns函数的第一个参数表示视图前缀,视图前缀可以为空,之后跟上若干个url函数,每个url函数表示一个请求映射关系。
 

注意:

3.1 url函数的第二个参数,表示视图函数,它的名字不是随便取的,必须要在views.py中真实存在,项目的每个应用下都会有一个views.py文件。

3.2 views.py文件中的视图函数,其第一个参数必须是HttpRequest对象。

3.2 name的作用主要体现在一个视图函数对应多个url请求的场景中,name可以用来唯一标识一个url,所以它必须全局唯一

 
urls.py的配置写法一般有三种方式:
Django学习--urls.py详解
 
第一种是视图函数处理方法,l例如:
from hello_app import views   #在hello_app中的views.py文件中配置了函数hello
#url函数写法
url(r'^hello$',views.hello)
 
第二种方法是导入视图函数中的方法
第三种就是下述的include分解器方式。
 
2.URL的编辑模式:
urlpatterns=[
    url(正则表达式,view函数,参数,别名,前缀)
]
其中各参数的说明如下:
* 一个正则表达式字符串
* 一个可调用的对象,通常为一个视图函数或者是一个指定视图函数路径的字符串
* 可选的要传递给视图函数的默认参数(字典形式)
* 一个可选的参数
* 路径的前缀
以下为url函数源码
Django学习--urls.py详解
 
 
3.URl分解器,include函数:
Django学习--urls.py详解
通常一个URL分解器对应一个URL配置模块,他可以包含多个URL模式,野也以包含多个其他URl分解器。 通过这种包含结构设计,实现Django对URL的层级解析。
通俗讲就是URL过多时 ,每个app分别保存自己的url,这样在工程目录下的urls.py文件中就不会有很多的URL地址。
URL分解器是Django实现app'与项目解耦的关键,那个有include方法操作的URL配置模块,最终会被解释为URl分解器。

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">