前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python测试开发django5.urls.py参数name与<a>标签的引用

Python测试开发django5.urls.py参数name与<a>标签的引用

作者头像
王大力测试进阶之路
发布2020-09-15 16:33:34
6570
发布2020-09-15 16:33:34
举报
文章被收录于专栏:橙子探索测试

上一篇,我们学习了Python测试开发django5.templates模板变量传参

如果我们有2个页面home.html和demo.html,两个页面是独立的没有关系的,现在需要从home.html页,点某个超链按钮,跳转到demo.html页,home.html页面就需要配置demo.html的页面链接

项目目录

helloworld\hello\templates\demo.html文件写入内容

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo模板</title>
</head>
<body>

<p>
    <h4> 我的博客 </h4>
    <a href="https://blog.csdn.net/qq_36502272" target="_blank" > 博客网址 </a>
    <hr>
    <h4> 软件测试技术交流分享 </h4>
    <p>软件测试技术、方法、测试方案分享交流、python自动化测试、性能Jmeter工具交流学习<br>
        QQ交流群212683165

    </p>
    <a href="https://blog.csdn.net/qq_36502272" target="_blank" >点击访问博客</a>
</p>

</body>
</html>

helloworld\hello\templates\home.html文件写入内容

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>home模板</title>
</head>
<body>

<p> 欢迎进入home页面
    <hr>
    <a href="demo" > 点击跳转demo页面 </a>
</p>

</body>
</html>

helloworld\hello\views.py文件写入内容

代码语言:javascript
复制
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.


# def home(request):
#     return HttpResponse("hello")
def home(request):
    return render(request, 'home.html')


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

helloworld\helloworld\urls.py文件写入内容

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from hello import views

urlpatterns = [
    path('admin/', admin.site.urls),
    url('^demo$', views.demo),
    url('^home$', views.home),
]

这样就实现了从home.html页,点击某个超链接跳转demo.html页

我们目前是把<a href="demo" > 点击跳转demo页面 </a>在home.html页写四的,如果多个页面都用到这个链接时,地址发生变化了,修改的地方就太多了,维护成本太高,这时候我们就可以给url标记上唯一的名字,也就是name参数,接下来在url配置里加个name名称,由原来的url('^demo

helloworld\helloworld\urls.py文件更新为:

代码语言:javascript
复制
urlpatterns = [
    path('admin/', admin.site.urls),
    url('^demo$', views.demo,name="Demo"),
    url('^home$', views.home),
]

对于像<a>这样链接的操作用法:

不带参数的:{% url 'name' %}

带参数的:参数可以是变量名 {% url 'name' 参数 %}

home.html里<a href="demo" > 点击跳转demo页面 </a>变更为<a href={% url 'Demo' %} > 点击跳转demo页面 </a>

helloworld\hello\templates\home.html文件更新为:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>home模板</title>
</head>
<body>

<p> 欢迎进入home页面
    <hr>
    <a href={% url 'Demo' %} > 点击跳转demo页面 </a>
</p>

</body>
</html>

所以这里的改变为:url('^demo$', views.demo,name="Demo")(对于其他部分自动补脑),在<a href={% url 'Demo' %} > 点击跳转demo页面 </a>    解释:{% url 'Demo' %}这里的Demo'代表着这个url自动去寻找django的url里面name="Demo'"这条链接,并将找到的url -demo.html赋值给<a>标签中的href,当链接发生变化,我们只需要更新urls.py里面的'^demo$'就可以了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 橙子探索测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档