关于:url视图函数模板3者之间参数传递的理解

Posted eagleow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于:url视图函数模板3者之间参数传递的理解相关的知识,希望对你有一定的参考价值。

url获取参数的途径有2个:

  • 1、url中的变量,设置在URL地址中。
  • 2、url中添加字典,设置在URL地址外。
urlpatterns = [   
    path('<year>/<int:month>/<slug:day>', views.mydate),    
    re_path('/dict/(?P<year>[0-9]{4})/$', views.my_dict,{'month':'09'}, name='my_dict'),    #year参数设置在URL地址内,month参数设置在URL地址外。
]

视图函数获取参数的途径:

  • 把url传递过来的参数(url地址中的,和url地址外的),全部一起传给视图函数。
def my_dict(request, year, month):    #通过url获取到year,month2个参数。
    return render(request, 'mydict.html',{'month':month})    

模板获取参数的途径:

  • 通过视图函数return中的render中的context(即上例中的{‘month‘:month}),来获取需要的变量(参数)。
<a href="{% url 'my_dict' 2018 %}">2019年 {{ month }}</a>

总结:

3者之间参数的传递顺序是:url获取到的参数--->传递给视图函数views--->视图函数再render参数给模板文件。
或者反过来说:模板中的变量(参数)来自于视图函数;而视图函数需要的参数,来自于url。

以上是关于关于:url视图函数模板3者之间参数传递的理解的主要内容,如果未能解决你的问题,请参考以下文章

Django框架中的视图和模板

无论如何在 Django 的模板 url 函数中传递超过 2 个参数?

Django框架入门之视图和URL模板

路由配置系统(views)

url向视图函数传递参数

Flask阶段回顾和展望