说明:mytestsite是django框架下的项目,quicktool是mytestsite项目中的应用

quicktool/view.py文件修改视图函数index(),渲染一个home.html模板

from django.shortcuts import render
def index(request):
return render(request, 'home.html')

quicktool(应用app)下创建一个templates文件夹(模板),在templates下创建一个home.html

<!DOCTYPE html>
<html>
<head>
<title>学习Django</title>
</head>
<body> <a href="/add2/4/5/">计算 4+5</a> </body>
</html>

mytestsite/urls.py文件将视图函数index()对应的网址取名name为home(只要这个名字不变,网址变了也能通过名字获取到)

urlpatterns = [
path('admin/', admin.site.urls),
path('', quicktool_views.index, name='home'), # 新增name值
path('add/', quicktool_views.add, name='add'), # 新增
path('add2/<int:a>/<int:b>/', quicktool_views.add2, name='add2'), # 新增
]

运行开发服务器,访问http://127.0.0.1:8000/,可以看到

点击标签a会执行脚本进行计算,但是home.html中代码a标签的url是"写死"的,我们可以通过url的name传参,home.html增加以下代码

#不带参数的:
#{% url 'name' %}
#带参数的:参数可以是变量名
#{% url 'name' 参数 %} <a href="/add2/4/5/">计算 4+5</a>
<a href="{% url 'add2' 70 80 %}">计算 70+80</a> # 新增

运行开发服务器,访问http://127.0.0.1:8000/,可以看到

点击第一个a标签跳转请求的url为http://127.0.0.1:8000/add2/4/5/

点击第二个a标签跳转请求的url为http://127.0.0.1:8000/add2/70/80/

第二个a标签的写法是根据url name 值传参进行跳转,即根据mytestsite/urls.py文件的url path()的属性值name匹配,再传相应的参数值,进行"不写死"请求。

在url path()的属性值name不修改的前提下,修改url path()的第一个路径参数,那么a标签获取的网址也会动态相应变化。

比如

path('add2/<int:a>/<int:b>/', quicktool_views.add2, name='add2'),

改成

path('add2/<int:a>/<int:b>/', quicktool_views.add2, name='add2'),

除此,还需要写一个跳转到新地址的函数,Django并不会自动更新跳转地址

例如旧的地址收藏夹为/add2/4/5/,访问时就会自动跳转到新的/new_add2/4/5/

具体操作是,在quicktool/view.py文件写一个跳转函数

from django.shortcuts import render
from django.http import HttpResponseRedirect
def old_add2_redirect(request, a, b):
return HttpResponseRedirect(
reverse('add2', args=(a, b))
)

mytestsite/urls.py文件新增url

path('new_add2/<int:a>/<int:b>/', quicktool_views.add2, name='add2'),  # 新地址
path('add2/<int:a>/<int:b>/', quicktool_views.old_add2_redirect), # 旧地址

访问http://127.0.0.1:8000/,刷新后,可以看到

Django web框架-----url path name详解的更多相关文章

  1. 029:url标签使用详解

    url标签使用详解: 在模版中,我们经常要写一些 url ,比如某个 a 标签中需要定义 href 属性.当然如果通过硬编码的方式直接将这个 url 写死在里面也是可以的.但是这样对于以后项目维护可能 ...

  2. URL&HTTP协议详解

    本文来自公开课笔记,主要做知识的记录,谢谢! ·接口测试核心技术--URL&HTTP协议详解. ·URL: 统一资源定位符. 示例: https://ke.qq.com/course/3157 ...

  3. 自学Zabbix4.2 web监控项创建+item详解

    自学Zabbix4.2 web监控项创建+item详解 1. web监控项创建 1.1  Scenario 选项卡 Name: 监控项的名称 Application: 放到哪个应用中 Authenti ...

  4. 教程:Visual Studio 中的 Django Web 框架入门

    教程:Visual Studio 中的 Django Web 框架入门 Django 是高级 Python 框架,用于快速.安全及可扩展的 Web 开发. 本教程将在 Visual Studio 提供 ...

  5. Scrapy框架的命令行详解【转】

    Scrapy框架的命令行详解 请给作者点赞 --> 原文链接 这篇文章主要是对的scrapy命令行使用的一个介绍 创建爬虫项目 scrapy startproject 项目名例子如下: loca ...

  6. [oldboy-django][1初始django]web框架本质 + django框架 + ajax

    web框架本质 浏览器(socket客户端) - 发送请求(ip和端口,url http://www.baidu.com:80/index/) - GET 请求头(数据请求行的url上: Http1. ...

  7. [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    [转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...

  8. Qt的Graphics-View框架和OpenGL结合详解

    Qt的Graphics-View框架和OpenGL结合详解 演示程序下载地址:这里 程序源代码下载地址:这里 这是一篇纯技术文,介绍了这一个月来我抽时间研究的成果. Qt中有一个非常炫的例子:Boxe ...

  9. Node入门教程(8)第六章:path 模块详解

    path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径.由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异. 可移植操作系统接口( ...

随机推荐

  1. Python 写了个小程序,耗时一天,结果才100多行

    from selenium import webdriver import selenium.webdriver.support.ui as ui from selenium.webdriver.co ...

  2. Unity用Vuforia做AR实现脱卡效果

    这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105

  3. 微信小程序将网络图片转化为base64

    网络图片需用wx.downloadFile下载,然后调用微信自带的base64转化 可能会存在兼容, let image_to_base64 = function(img){ return new P ...

  4. Github-记账本

  5. python关于类和正则表达( 编写一个程序(类))

    1.什么是类对象,实例对象 类对象:类名实例对象:类创建的对象 2.类属性: 就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本.对于公有的类属性,在类外可以通过类对象和实 ...

  6. 用vue脚手架创建bootstrap-vue项目

    用vue脚手架创建bootstrap-vue项目 框架的地址:https://bootstrap-vue.js.org/docs/ 第一步 vue init webpack demo第二步 cd de ...

  7. Java中的String为什么是不可变的? -- String源码分析

    众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是, ...

  8. 基于CentOS安装FTP服务器

    操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd 添加系统用户作为登录ftp服务器并修改 ...

  9. 二分优化lis和STL函数

    LIS:最长上升子序列: 这个题我们很显然会想到使用dp, 状态设计:dp[i]代表以a[i]结尾的LIS的长度 状态转移:dp[i]=max(dp[i], dp[j]+1) (0<=j< ...

  10. xftp5和xshell的使用

    目的:实现windows和linux系统之间文件的传输 步骤:1)下载xshell5 百度搜索即可,直接下载安装 2)xshell5下载完成后与虚拟机链接成功 3)下载xftp5点击 然后跟据官方的指 ...