实战Django的URL的name值

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之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:

6.浏览器访问URL结果

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之URL路由系统【交互篇一】点击跳转​​​​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值