二、python Django路由[基本操作、路由反向解析、路由重定向]

django 3.2.13

一、路由

1.1 urls.py

基础:

# 主urls文件
from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),// 读取根目录的路由
    path('index/',include('app1.urls'))// 读取app目录里面的路由(include就是用来包含app目录里面的内容)
]
# app里面的urls文件
from django.urls import path
from app1 import views

urlpatterns = [
    path('index/',views.index,name='index') 
    # name会在后面的模板用到如<a herf="{% url "index"  ‘数据A’ ‘数据B’%}"></a>(里面就相当127.0.0.1/a/index/数据A/数据B)
    # 注意使用name有不好的地方就是可能会出现多个路由重复的情况,解决在每个app下添加单独的app_name = 'index'
]

1.2 路由匹配变量

  1. <int:age>
  2. <str:name>
  3. <slug:title> (可以匹配任何ASCII码、连接符和下划线,如88-ak)
  4. <uuid:id>(uuid格式的,如a3d68fa7-e6a1-49f8-ab0d-e7bd7da82672
  5. 可使用正则表达式
def index(request,id):
   print(id) # 即可打印出来uuid
   return render(request,'index.html')

1.3 路由参数

  1. name='indexb':配合app_name使用
  2. app_name='indexa':与name一同使用,用法:indexa:indexb这两个参数主要可用于类似:<a herf="{% url "indexa:indexb" ‘数据A’ ‘数据B’%}"></a>(里面就相当127.0.0.1/a/index/数据A/数据B)
from django.urls import path
from testWeb import views
app_name='index'
urlpatterns = [
        path('<str:id>',views.index,name='index')
]

1.4 路由反向解析

导入:

from django.urls import resolve
from django.shortcuts import reverse
  1. reverse("indexa:indexc"):解析出路由地址,此例返回结果为/logggg(地址设有变量写入参数args(列表方式)或者kwargs(字典方式),写入数据)
  2. resolve(reverse("indexa:indexc")):返回结果为该路由的详细信息,如下图
    在这里插入图片描述
from django.urls import path
from testWeb import views
app_name='indexa'
urlpatterns = [
        path('<str:id>',views.index,name='index'),
        path('/logggg',views.go,name='indexc')
]


1.5 路由重定向

导入:

from django.views.generic import RedirectView
from django.shortcuts import redirect
  1. 路由里面重定向
urlpatterns=[
	path('index/',views.index),
	path('go/',RedirectView.as_view(url="/"))

]
  1. 视图函数重定向
def index(request):
	return redirect('/go')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值