Django 路由

创建好项目后在项目文件下的urls.py为设置路由

Django 有两种路由方式一种的精确路由 另一个为模糊路由

"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
#正则路由依赖于re_path模块
from django.urls import path,re_path
#导入整个自定义模块 使用逗号来分割调用 文件是要直接创建并定义方法后进行导入进行匹配
from . import d1,d2
#设置路由 urlpatterns
= [ path('admin/', admin.site.urls),
#定义首页,首页留空,第二个参数 指定路由方法 path('',d2.index),
#在定义一个路由 path('test/',d1.test),
#定义一个重定向页面 path("123",d1.re_url),
#使用多个网址来指向同一个路由方法 path("456",d1.re_url),
#定义存储cookie的路由 path("save_cookie",d1.save_cookie),
#定义获取cookie的路由 path("get_cookie",d1.get_cookie),
#定义删除cookie的路由 path("del_cookie",d1.del_cookie),
#定义一个正则路由,可以使用d数字 #常用元字符.匹配所以d数字D非数字w字母数字_ #如果在正则路由内,使用()分组,那么django会认为进行路由传参 # re_path(r'^test-d+-.*$',d1.test_re) re_path(r'^test-(d+)-(.*)/$',d1.test_re), ]

py文件

#导入django模块 重定向依赖于 HttpResponseRedirect
from django.http import HttpResponse,HttpResponseRedirect
#导入时间模块
from datetime import datetime
#导入django
# 内置的时间转换模块
from django.utils.timezone import make_aware

# 定义视图方法
def index(request):
    #返回一个字符串
    return HttpResponse("Hello World")


# 定义视图方法
def test(request):
    #返回一个字符串

    #接收通过get方式传过来的参数,第二个参数来判断,如果没有该值,赋一个值
    id = request.GET.get('id','未接到参数')
#通过post属性来接收post过来的参数 id = request.POST.get("id",'未接到参数')  ip = request.POST.get("ip",'未接到参数') print(id) return HttpResponse("id=" + str(id) +"ip=" + str(ip)) # 定义跳转页面 def re_url(request): #进行重定向操作 return HttpResponseRedirect("/test-123-456/") # 定义视图方法 def test_re(request,p1,p2): #返回一个字符串 return HttpResponse("这里是正则路由" + str(p1)+str(p2))
原文地址:https://www.cnblogs.com/Niuxingyu/p/10286665.html