Python中url标签使用知识点总结


Posted in Python onJanuary 16, 2020

1.在模板中,我们经常要使用一些url,实现页面之间的跳转,比如某个a标签中需要定义href属性。当然如果通过硬编码的方式直接将这个url固定在里面也是可以的,但是这样的话,对于以后进行代码的维护,可能就比较麻烦,因此建议使用这种动态的方式来实现,类似于django中reverse一样。示例代码如下:

<li><a href="/">首页</a></li>
{# 此时采用动态获取url的方式,使用url标签可以在DTL模板中动态获取url,#}
{# 而使用reverse()函数,可以在Django中动态获取url标签,将视图函数进行反转,得到url. #}
 <li><a href="{% url 'book' %}">读书</a></li>
 <li><a href="{% url 'movie' %}">电影</a></li>
 <li><a href="{% url 'city' %}">同城</a></li>

2.如果url进行反转的时候,需要传递参数,那么就可以在后面传递,但是参数有位置参数和关键字参数。位置参数和关键字参数不能同时使用。示例代码如下:

{# url反转,使用位置参数,但是关键字参数和位置参数不能同时使用 #}
 <li><a href="{% url 'detal' 1 %}"></a></li>
 
{# url反转,使用关键字参数 #}
{# 接收url中传递参数,可以在url中直接传递参数,并且指定参数的值,但是此时=两边不能有空格,否者的话,不能识别 #}
 <li><a href="{% url 'detail' book_id='3' %}">最火的一篇文章详情</a></li>

3.如果要在使用url标签反转的时候要传递查询字符串的参数,那么必须要手动在后面添加,示例代码如下:

{# 在模板中使用查询字符串的形式添加参数,此时就只能和reverse()函数一样,只能手动的添加,使url进行拼接。 #}
{# 实现登录成功之后跳转到首页 #}
 <li><a href="{% url 'login' %}?next=/">登录</a></li>

4.如果要传递多个参数,那么可以通过空格的方式进行分割,示例代码如下:

<li><a href="{% url 'detail' book_id='3' author='小蚂蚁' %}">最火的一篇文章详情</a></li>

以下是完整代码实现:

views.py代码如下:

from django.http import HttpResponse
from django.shortcuts import render


def index(request):
 return render(request,'index.html')


# 定义登录视图函数
def login(request):
 next = request.GET.get('next')
 text = "登录完成后,要跳转的页面是:%s" % next
 return HttpResponse(text)


def book(request):
 return HttpResponse('图书页面')


# 在进行访问url的时候进行传递参数视图,直接传入一个参数
def book_detail(request,book_id,author):
 text = '您输入的图书id是:%s,作者是:%s' % (book_id,author)
 return HttpResponse(text)


def movie(request):
 return HttpResponse('电影页面')


def city(request):
 return HttpResponse("同城页面")

index.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  .nav {
   overflow: hidden;
  }
  .nav li {
   float: left;
  {# 将li标签前面的圆点去掉 #}
   list-style: none;
   {# 定义li标签之间的外边距,上下为0,左右为20px #}
   margin: 0 20px;
  }
 </style>
</head>
<body>
<ul class="nav">
 <li><a href="/">首页</a></li>
{# 此时采用动态获取url的方式,使用url标签可以在DTL模板中动态获取url,#}
{# 而使用reverse()函数,可以在Django中动态获取url标签,将视图函数进行反转,得到url. #}
 <li><a href="{% url 'book' %}">读书</a></li>
 <li><a href="{% url 'movie' %}">电影</a></li>
 <li><a href="{% url 'city' %}">同城</a></li>
{# url反转,使用位置参数,但是关键字参数和位置参数不能同时使用 #}
{# <li><a href="{% url 'detal' 1 %}"></a></li>#}
{# url反转,使用关键字参数 #}
{# 接收url中传递参数,可以在url中直接传递参数,并且指定参数的值,但是此时=两边不能有空格,否者的话,不能识别 #}
 <li><a href="{% url 'detail' book_id='3' author="小蚂蚁" %}">最火的一篇文章详情</a></li>
{# 在模板中使用查询字符串的形式添加参数,此时就只能和reverse()函数一样,只能手动的添加,使url进行拼接。 #}
{# 实现登录成功之后跳转到首页 #}
 <li><a href="{% url 'login' %}?next=/">登录</a></li>
</ul>
</body>
</html>

视图函数与url之间的映射:
urls.py代码如下:

from django.urls import path
from . import views

urlpatterns = [
 path('',views.index,name = 'index'),
 path('book/',views.book,name = 'book'),
 path('movie/',views.movie,name = 'movie'),
 path('city/',views.city,name = 'city'),
 path('book/detail/<book_id>/<author>/',views.book_detail,name = 'detail'),
 path('login/',views.login,name = 'login'),

]

浏览器中查看结果:

Python中url标签使用知识点总结

Python中url标签使用知识点总结

Python中url标签使用知识点总结

以上就是本次介绍的全部相关知识点,感谢大家的学习和对三水点靠木的支持。

Python 相关文章推荐
Python中Django框架利用url来控制登录的方法
Jul 25 Python
浅谈python中的占位符
Nov 09 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
python同步两个文件夹下的内容
Aug 29 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
Python基于read(size)方法读取超大文件
Mar 12 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
详细分析Python collections工具库
Jul 16 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 #Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 #Python
pytorch的batch normalize使用详解
Jan 15 #Python
pytorch方法测试详解——归一化(BatchNorm2d)
Jan 15 #Python
Python 中@property的用法详解
Jan 15 #Python
Python字符串中删除特定字符的方法
Jan 15 #Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
Jan 15 #Python
You might like
判断是否为指定长度内字符串的php函数
2010/02/16 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php、java、android、ios通用的3des方法(推荐)
2016/09/09 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
2010/06/23 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
RequireJs的使用详解
2017/02/19 Javascript
VUE多层路由嵌套实现代码
2017/05/15 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python模块smtplib实现纯文本邮件发送功能
2018/05/22 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
Python原始套接字编程实例解析
2020/01/29 Python
Python3.9新特性详解
2020/10/10 Python
节水倡议书范文
2014/04/15 职场文书
建党伟业的观后感
2015/06/01 职场文书
三八妇女节致辞
2015/07/31 职场文书