如何使用Django将views变量传递给模板

时间:2019-09-28 12:02:46

标签: python django django-templates django-views

在检查了几个类似的线程之后,我仍然无法使其正常工作。我想将一个简单变量从views.py传递到index.html模板。但是模板在前端显示变量'liga1',并且未传递该变量的值。

这些是我的文件:

views.py

import requests
from django.shortcuts import render
import json

# Render different pages


def render_landing_page(request, template="index.html"):
    liga = ['1. Bundesliga', 'Premier League', 'La liga']
    return render(request, template, {'liga': liga})

index.html (仅摘要):

    <!-- Sidebar -->

    <div id="sidebar">
      <header>
        <a href="#">Dasocc</a>
      </header>
      <ul class="nav">
        <li class="countries"><img src="{% static "images/germany.png" %}" alt="germany">{{ liga }}

urls.py //项目目录

from dasocc_app import views
from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^$', views.render_landing_page, name='landing_page'),
    url(r'^$', views.liga, name='liga'),
    url(r'^dasocc-app/', include('dasocc_app.urls')),
    url(r'admin/', admin.site.urls),
]

urls.py //应用程序目录

from django.conf.urls import url
from dasocc_app import views

urlpatterns = [
    #Where home is some random view from your dassocc-app
    url(r'^$', views.liga, name='liga')
    ]

index.html模板中{{liga}}变量的前端没有html输出:

enter image description here

相关项目结构:

enter image description here

1 个答案:

答案 0 :(得分:1)

由于某种原因,您已将模板添加到urls.py中。即使您没有告诉我们要访问的URL,从输出中也可以清楚地看到,您是直接访问模板地址,而不是访问liga视图提供的URL。

从您的网址中删除模板,然后添加一个指向liga的网址。