我有一个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')
任何帮助将不胜感激。
答案 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/