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解析html开发库pyquery使用方法
Feb 07 Python
用Python登录Gmail并发送Gmail邮件的教程
Apr 17 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
django之session与分页(实例讲解)
Nov 13 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
详解Django中间件执行顺序
Jul 16 Python
opencv python 傅里叶变换的使用
Jul 21 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
python实现数据分析与建模
Jul 11 Python
python argparse模块通过后台传递参数实例
Apr 20 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
php生成word并下载代码实例
2019/03/15 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
原生js和jquery实现图片轮播特效
2015/04/23 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
JS实现用户注册时获取短信验证码和倒计时功能
2016/10/27 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
vue3.0自定义指令(drectives)知识点总结
2020/12/27 Vue.js
vue 组件基础知识总结
2021/01/26 Vue.js
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
python实现图片彩色转化为素描
2019/01/15 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
2020/05/13 Python
英国男士时尚网站:Dandy Fellow
2018/02/09 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
yy司仪主持词
2014/03/22 职场文书
网站出售协议书范文
2014/10/10 职场文书
高考升学宴答谢词
2015/01/20 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
光荣之路观后感
2015/06/12 职场文书
安全生产协议书
2016/03/22 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Vue监视数据的原理详解
2022/02/24 Vue.js