url文件的使用及常用模块的引入
在django中我们一般会看到urls.py文件(下面简称为url文件)。这个文件的作用就是在URL请求和处理该请求的视图函数之间建立一个对应关系,换句话说,它就是一个url请求映射表。这里需要说明的是这个文件名字并不是固定的,你也可以自己取名字,但是一般不要,因为这是约定俗成的结果。
下面对url文件的用法总结如下
配置
在settings文件中有ROOT_URLCONF选项。在选项中声明了在服务器载入项目时取查找那个文件作为起始的url文件
文件位置
1. 在创建项目时会自动在项目同名的文件夹下为我们创建一个urls.py文件,而settings文件中也会自动指定这个文件为起始的url文件。一般项目中全局的url和admin url会在这里进行声明。
2. 在实际工程中,我们为了结构更加清晰,往往会在每个app文件夹中创建自己的urls.py文件,在配置初始url文件中配置之后即可。这样每个app就可以单独管理自己的url了。所以每个项目单独的url一般写在自己的url文件中。
写法和常用模块引入
url文件的写法比较单一,一般写法在这里不赘述,可以参看任何一个项目的urls.py文件。这里只对引入模块,urlpatterns,patterns函数,url函数,include几个点进行讲解。(本文为模块引入,其他几个点看下面的文章)
1. from django.conf.urls import *
在1.7以前版本的django中为from django.conf.urls.default import *。在引入*主要代表url include patterns这几个函数
2. from django.contrib importadmin
主要引入了admin,方便后面的admin.site.urls处理函数的使用。这个是为我们自动添加的,主要是admin管理使用
3. from [appname].views import *
从指定的app中引入views文件,这个主要是是引入各种views中的处理函数
4. from django.conf importsettings
引入settings文件,从而可以使用必要的settings变量
urls.py如何工作
前面说过,urls.py本质上就是一个请求映射表,它决定了哪个请求由哪个函数来处理,具体过程如下:
1 浏览器发送请求url
2 服务端根据请求的url,在项目的所有应用(包括根目录)的urls.py配置文件中进行查找,如果能匹配到该url,就会将该url交给其对应的视图函数进行处理。
3 负责处理该url的视图函数,会搜集一些业务数据,然后把这些数据,通过 return render(request, '模板文件', 数据); 渲染到前端页面展示给用户。