创建好项目后在项目文件下的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))