django框架(二)-----路由规则、转换器、页面重定向

一、path的基本规则

path(route, view, kwargs=None, name=None)

① route:是一个字符串的url规则
② view: 是一个视图
③ kwargs: 额外参数,传递给view, 必须是一个字典
④ name: url的命名
案例:
① 新建student app,在虚拟环境中的项目目录下执行该命令
在这里插入图片描述
在crm/urls.py中

from django.contrib import admin
from django.urls import path, re_path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('student/', include('student.urls'))
]

在student/urls.py中

from django.urls import path, re_path
from . import views


app_name = 'student'
urlpatterns = [
    path('index/', views.index, name='index', kwargs={'username': 'swag'}),
]

在student/views.py中

from django.http import HttpResponse


# 此处必须有一个参数来接受kwargs传过来的值,且需一一对应
def index(request, username):
    return HttpResponse('欢迎%s来到首页面' % username)

②re_path的用法

from django.urls import path, re_path
from . import views


app_name = 'student'
urlpatterns = [
    re_path(r'detail/(?P<pk>\d|[1][0-2])/', views.detail, name='detail')
]

二、转换器的使用

常用转换器
str匹配除’/'路径分隔符之外的所有字符串
int匹配任意整数
slug匹配任意ascii字符,加上连字符和下划线
uuid格式化id
path匹配任意非空字符

案例:

# 冒号后不要加空格
path('detail/<int:pk>/', views.detail, name='detail')

三、页面重定向

①redirect重定向(静态)

from django.shortcuts import redirect


def index(request):
	return redirect('http://www.baidu.com')

这时访问index这个视图的时候就会跳转到百度啦!!!这个算是硬编码
②reverse动态解析路由
案例:实现访问首页时跳转到登录页面

from django.shortcuts import render, redirect, reverse


def index(request, username):
    return redirect(reverse('student:login'))

def login(request):
    return render(request, 'student/login.html')

在student/urls.py中(这时就用到路由命名啦,app_name也要定义)

from django.urls import path, re_path
from . import views


app_name = 'student'
urlpatterns = [
    path('index/', views.index, name='index'),
    path('login/', views.login, name='login'),
]    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值