二、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')
微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

黑日里不灭的light

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值