目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之URL路由系统【交互篇一】点击跳转
目录
- 1.创建Django项目
- 2.创建URL路由映射关系以及name值
- 3.URL路由对应函数根据URL的name值进行修改用户访问的url动态形参且修改后新url进行模板渲染
- 4.前端HTML获取用户访问的URL、前端的HTML根据URL的name进行修改用户访问的url的动态参数,后端新生成的url进行渲染
- 5.启动Django
- 6.浏览器访问URL结果
name的出现是为了什么?就是为了构架自己想要的url
1.创建Django项目
实战Django创建项目:https://blog.csdn.net/Burgess_zheng/article/details/86505526
2.创建URL路由映射关系以及name值
路径:project_burgess/project_burgess/urls.py
from django.contrib import admin from django.urls import path,re_path #Django版本2.0以上 from project_burgess import views from django.conf.urls import url #Django2.0 urlpatterns = [ path('admin/', admin.site.urls), #静态url path('burgess_web/', views.func),#最新版本的Django路由使用path #url(r'^burgess_web/', views.func), #2.0版本使用的是url #动态url #1.位置形参 re_path('burgess01-(\d+)-(\d+).html/', views.test01,name='burgess01'),#最新版本的Django路由使用path #url(r'^burgess01-(\d+)-(\d+).html/', views.test01,name='burgess01'), #2.0版本使用的是url #2.关键形参 re_path('burgess02-(?P<nid>\d+)-(?P<uid>\d+).html/', views.test02,name='burgess02'), # 最新版本的Django路由使用path #url(r'^burgess02-(?P<nid>\d+)-(?P<uid>\d+).html/', views.test02,name='burgess02'), #2.0版本使用的是url ]
3.URL路由对应函数根据URL的name值进行修改用户访问的url动态形参且修改后新url进行模板渲染
路径:project_burgess/project_burgess/views.py
__author__ = "Burgess Zheng" #!/usr/bin/env python #-*- coding:utf-8 -*- from django.shortcuts import render,HttpResponse,redirect def func(request): return HttpResponse('OK') def test01(request,*args): from django.urls import reverse #修改用户访问的url参数需要的模块 names = reverse('burgess01', args={80, 90,}) #根据name值修改用户访问的url的动态参数 print(names)#新生成url return render(request,'burgess.html',{'names':names}) #模板渲染返回指定html def test02(request,*args,**kwargs): from django.urls import reverse #修改用户访问的url参数需要的模块 names = reverse('burgess02', kwargs={"nid": 80, "uid": 90}) #根据name值修改用户访问的url的动态参数 print(names) return render(request, 'burgess.html', {'names': names})
4.前端HTML获取用户访问的URL、前端的HTML根据URL的name进行修改用户访问的url的动态参数,后端新生成的url进行渲染
路径:project_burgess/templates/burgess.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {# {% url 'burgess01' 2 6 %}:前端获取用户访问url并修改url动态参数 #} <div> <a href={% url 'burgess01' 2 6 %}>{% url 'burgess01' 2 6 %}</a> </div> {# {{ request.path_info }} :前端获取用户访问的url #} <div> <a href={{ request.path_info }}>{{ request.path_info }}</a> </div> {# {{ names }}:后端url对应函数使用reverse进行修改用户访问的url动态参数进行模板渲染 #} <div> <a href={{ names }}>{{ names }}</a> </div> </body> </html>
5.启动Django
手动:python manage.py runserver 127.0.0.1:8000
pycharm: