栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

django中模板和视图中url链接反转的总结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

django中模板和视图中url链接反转的总结

  1. views中的链接跳转:主要用到reverse和redirect
    reverse(‘app名:URL模式名称’,kwargs={‘传参1’:值’,‘传参2’:值2})
    1.1 如果要使用app名:URL模式名称这种样式,需要在urls.py文件中增加一行app_name=app名,否则会提示URL模式名称没有注册,建议使用此种格式,可以避免app过多存在URL模式名相同从而导致错误。
    1.2 kwargs对应的是传参功能,如果在path路径中未设置传参内容则此时不需要
    urls.py
from django.urls import path
from myapp import views
app_name='myapp'
urlpatterns=[
    path('index/',views.index,name='index'),
    path('login/',views.login,name='login'),
    path('detail///',views.detail,name='detail'),
    path('try/',views.reurl,name='reurl'),
]

view.py文件

def reurl(request,id=1):
    new_url=reverse('myapp:detail',kwargs={'artical_id':5,'eid':2})
    return redirect(new_url)
  1. Template中的链接跳转:主要用到a标签和{% url %}
    这里我们只介绍a标签的相对链接跳转,绝对跳转比较简单例如:跳转相对路径链接跳转分为两种:
    1.1 使用{% url ‘app名:URL模式名称’ 传参1=值1,传参2=值2 %},app名与上面提到的一样,当然也可以把app名:去掉不用,包括后面的传参
    template中
跳转到登录页面
跳转到详情页面

1.2使用相对路径直接跳转格式跳转,此处路径名前面加了斜线,那么这样跳转路径会直接变为域名/路径名,例如我的代码例子,由于我解耦了url,利用app中的url分发,故我在路径名前面又增加了总路径名,否则会报错

  

跳转到首页

跳转到detail页面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/360619.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号