路由
一个完整的路由包含:路由地址,视图函数(视图类),可选变量和路由命名。
路由的定义规则:
路由称为URL,是对可以从互联网上得到的资源位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,互联网上的每个文件都有一个唯一的路由。用于指出网站文件得路径位置。简单的说路由可以视为我们常说的网站,每个网站代表不同的网页。
在项目中的APP里面创建一个urls.py。在APP里面添加urls.py是将属于APP的路由都写入该文件,这样更容易区分和管理每个APP的路由地址,而项目下的urls.py是将每个APP的urls.py统一管理
工作原理:
- 运行项目时,Django从项目中的urls.py里面找到各个APP所定义的路由信息,生成完整路由列表
- 当用户在浏览器上访问某个路由地址时,Django就会收到该用户的请求信息。
- Django从当前请求信息中或的路由地址,并在路由列表里面匹配相应的路由信息。在执行路由信息 所指向的视图函数,从而完成整个请求的响应过程。
from django.contrib import admin #导入内置Admin功能模块 from django.urls import path,re_path from index.views import index from django.views.static import serve from django.conf import settings from django.urls import include #导入Django的路由函数模块 urlpatterns = [ path('admin/', admin.site.urls), #指向内置Admin后台系统的路由文件sites.py path('',index), re_path('media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT},name='media'), path('',include('index.urls')) #指向index的路由文件urls.py ]
项目文件夹的urls.py定义两条路由信息,分别是Admin站点管理和首页地址其中,Admin站点管理在创建项目时已自动生成。一般情况其无需修改,首页地址是指index下的urls.py。
- urlpatterns:代表整个项目的路由集合,以列表形式显示,每个元素代表一个路由信息。
- path('admin/', admin.site.urls):设定Admin的路由信息,Admin代表127.0.0.1:8000/admin的路由地址,admin.site.urls指向内置Admin功能所自定义的路由信息。可以在python\Lib\site-packages\django\contrib\admin\sites.py找到定义过程
- path('',include('index.urls'):路由地址为\ 即127.0.0.1:8000通常是网站的首页,路由函数include是将该路由信息分发给index的urls.py处理。
由于首页地址分发给了index下的urls.py处理,因此下一步的urls.py编写路由信息
from django.urls import path from . import views urlpatterns=[ path('',views.index) ]
路由信息 path('',views.index) 的views.index是指视图函数index处理网站首页的用户请求和响应的过程
from django.shortcuts import render # Create your views here. def index(request): return render(request,'index.html')
index函数必须设置一个参数,参数名不固定,但常用request进行命名,代表当前用户的请求对象,该对象包含当前请求的用户名,请求内容和请求方式等。视图函数执行完成后必须要使用return返回结果,否则程序会报错。
项目启动时查找路由的的流程
ROOT_URLCONF &#