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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
用python实现面向对像的ASP程序实例
Nov 10 Python
详解Python的Django框架中的模版继承
Jul 16 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
详解python Todo清单实战
Nov 01 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
pandas创建DataFrame的7种方法小结
Jun 14 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
Python random模块的使用示例
Oct 10 Python
python爬取天气数据的实例详解
Nov 20 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 根据URL下载远程图片、压缩包、pdf等文件到本地
2019/07/26 PHP
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
2016/05/26 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
vue中axios处理http发送请求的示例(Post和get)
2017/10/13 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Vue项目打包部署到apache服务器的方法步骤
2021/02/01 Vue.js
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python import自定义模块方法
2015/02/12 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python脚本暴力破解栅栏密码
2015/10/19 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
python3实现猜数字游戏
2020/12/07 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
python与idea的集成的实现
2020/11/20 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
新学期班主任寄语
2014/01/18 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
离婚答辩状范文
2015/05/22 职场文书
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis