无法将数据传递到模板html页面[Django]

时间:2019-03-22 04:12:59

标签: python html django

我有一个python django项目,我只是在尝试将数据传递到模板,但是由于某种原因,它似乎无法正常工作。我的views.py文件 位于myproject / mystuff / views.py中,如下所示:

from django.shortcuts import render

def index(request):
    return HttpResponse("TESTING")

def myview(request):
    tempData = {'firstname': 'bob','lastname': 'jones'}
    weather = "sunny"
    data = {
        'person': tempData,
        'weather': weather
    }
    return render(request,'myproject/templates/myview.html',data)

在myview.html页面中,我只需添加

    <h1>Hi {{ person.firstname }} {{ person.lastname }}</h1>
    <h1>Today it is {{ weather }}</h1>
位于Myproject / mystuff / urls.py中的

我的urls.py看起来像这样:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^$', views.myview, name='myview'),
]

最后,我还有一个django rest框架的第二个urls.py,其中包含urlpatterns []:

url(r'^myview$', TemplateView.as_view(template_name='myview.html'), name='home')

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您不能直接将变量传递到html中,需要指定为字典

Django Views.py

from django.shortcuts import render

def index(request):
    return HttpResponse("TESTING")

def myview(request):
    tempData = {'firstname': 'bob','lastname': 'jones'}
    weather = "sunny"
    data = {
        'person': tempData,
        'weather': weather
    }
    return render(request,'myproject/templates/myview.html',{'data':data}) 
#passing value in a dictionary

在HTML页面中,我们可以访问值字典键值

<h1>Hi {{ data.person.firstname }} {{ person.lastname }}</h1>
<h1>Today it is {{ data.weather }}</h1>

答案 1 :(得分:-1)

您传递数据的方式是正确的。

但是,在较新版本的Django(包括您使用的2.1.5)中,建议使用path来构建url路径。

您可以在urls.py中像这样使用它:

from django.urls import path
from . import views
urlpatterns = [
    path('myview', views.myview, name='myview')
]

官方教程,显示如何使用path构建url路径: https://docs.djangoproject.com/en/2.1/intro/tutorial01/

django.urls.path的官方文档: https://docs.djangoproject.com/en/2.1/ref/urls/