Django ---初探路由

本文详细介绍了Django框架中的路由概念,包括路由的定义、工作原理、路由的变量设置、命名空间和路由命名。重点讲解了路由地址、视图函数、变量类型以及正则表达式在路由中的应用,并探讨了模板中使用路由的注意事项和反向解析功能。
摘要由CSDN通过智能技术生成

 

路由

一个完整的路由包含:路由地址,视图函数(视图类),可选变量和路由命名

路由的定义规则

路由称为URL,是对可以从互联网上得到的资源位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,互联网上的每个文件都有一个唯一的路由。用于指出网站文件得路径位置。简单的说路由可以视为我们常说的网站,每个网站代表不同的网页。

在项目中的APP里面创建一个urls.py。在APP里面添加urls.py是将属于APP的路由都写入该文件,这样更容易区分和管理每个APP的路由地址,而项目下的urls.py是将每个APP的urls.py统一管理

工作原理:

  1. 运行项目时,Django从项目中的urls.py里面找到各个APP所定义的路由信息,生成完整路由列表
  2. 当用户在浏览器上访问某个路由地址时,Django就会收到该用户的请求信息。
  3. 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 &#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值