关于:url、视图函数、模板3者之间参数

发布时间:2019-05-26 22:30:37编辑:auto阅读(1743)

    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。

关键字