其他分享
首页 > 其他分享> > Django 路由详解(二)

Django 路由详解(二)

作者:互联网

 路由变量

有时候一个路由可以代表多个不同的页面,如果每个页面都要设置一个路由配置,这种做法明显不可取,在Django在定义路由时,可以对路由设置变量,使路由具有多样性。

路由的变量类型有字符类型、整形、slug和uuid,最为常用的是字符类型和整型。各个类型说明如下:

在路由中,使用变量符号<>可以为路由设置变量,在括号里面以冒号划分为两部分,冒号前面为变量的数据类型,冒号后面为变量名,如果没有设置变量的数据类型,则默认为字符串类型。

以下代码是带有字符串、整型和slug的变量:

#myapp urls.py
from django.urls import path,re_path
# from myapp.views import myapp_index,new
from . import views

urlpatterns = {
    #配置myapp应用路由地址,指向myapp的views.py中的视图函数myapp_index
    path("",views.myapp_index),
    path("new/",views.new),
    path("<year>/<int:month>/<slug:day>",views.timeView)
}

在views.py中的视图函数timeView代码如下:

from urllib import response
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def timeView(request,year,month,day):
    return HttpResponse(str(year)+"/"+str(month)+"/"+str(day))

其中参数year、month、day的参数值分别从路由地址所设置的变量<year>、<int:month>、<slug:day>而来.

在浏览器上的效果如下:

 

 修改浏览器上的地址,再次访问效果如下:

 

路由可选变量

路由可选变量是在访问地址时,可以不用传变量。代码如下:

#myapp urls.py
from calendar import month
from django.urls import path,re_path
# from myapp.views import myapp_index,new
from . import views
import time


urlpatterns = {
    #配置myapp应用路由地址,指向myapp的views.py中的视图函数myapp_index
    path("",views.myapp_index),
    path("new/",views.new),
    path("<year>/<int:month>/<slug:day>",views.timeView),
    path("time/",views.Option_variable,{"current_time":time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())) }),
}

 在浏览器中访问效果如下:

 

标签:变量,views,Django,详解,myapp,path,import,路由
来源: https://www.cnblogs.com/JcHome/p/16069711.html