一、传统路由(path)
# urls.py from django.contrib import admin from django.urls import path from apps.web import views urlpatterns = [ path('home/', views.home), path('news/<int:nid>/edit/', views.news), path('article/', views.article), ] int,整数 str,字符串 / slug,字母+数字+下滑线+- uuid,uuid格式 path,路径,可以包含 /
对应视图函数
# views.py from django.shortcuts import render, HttpResponse def home(request): return HttpResponse("成功") def news(request, nid): print(nid) page = request.GET.get("page") return HttpResponse("新闻") def article(request): nid = request.GET.get("nid") print(nid) return HttpResponse("文章")
二、正则表达式路由(re_path)
# urls.py from django.contrib import admin from django.urls import path, re_path from apps.web import views urlpatterns = [ re_path(r'users/(?P<xxid>\w+-\d+)/(?P<yid>\d+)/', views.users), ]
对应视图函数
# views.py from django.shortcuts import render, HttpResponse def users(request, xxid, yid): return HttpResponse("成功")
三、路由分发(include或手动分发)
文件结构
projectA #项目 -apps #apps -user #app -views.py -urls.py -manager #app -views.py -urls.py -projectA #项目文件 -settings.py -urls.py
urls.py 总url文件
from django.urls import path, include from app1 import views urlpattrens = { path("admin/", views.admin), #无分发 path("user/", include("apps.app1.urls")), #分发到apps/app/urls文件 }
apps/app/urls.py 各app的url
from django.urls import path from apps.user import views urlpatterns = { # 实际路由 /user/index path("index/", views.index), }
未完待续标签:系列,views,py,django,urls,import,path,路由 From: https://www.cnblogs.com/coderRocky/p/17394254.html