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当中的数据类型和变量
Apr 25 Python
在MAC上搭建python数据分析开发环境
Jan 26 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
利用pyuic5将ui文件转换为py文件的方法
Jun 19 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
简单了解python代码优化小技巧
Jul 08 Python
原生python实现knn分类算法
Oct 24 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
javascript HTML5 canvas实现打砖块游戏
2020/06/18 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python的pycurl包用法简介
2015/11/13 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
利用Python进行数据可视化常见的9种方法!超实用!
2018/07/11 Python
基于python实现聊天室程序
2018/07/27 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Python绘制热力图示例
2019/09/27 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
英国最大的百货公司:Harrods
2016/08/18 全球购物
StubHub新加坡:购买和出售全球活动门票
2017/03/10 全球购物
特步官方商城:Xtep
2017/03/21 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
本科毕业自我鉴定
2014/03/20 职场文书
法院授权委托书范文
2014/08/02 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014财务年终工作总结
2014/12/08 职场文书
大班上学期个人总结
2015/02/13 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
详解Android中的TimePickerView(时间选择器)的用法
2022/04/30 Java/Android