Django新手求助:如何在网页中输出静态数组结果
解决Django视图数组无法显示的问题
嘿,我来帮你搞定这个问题!首先得说,你网页空白的核心原因很简单——你的Compare视图函数只定义了数组,但完全没返回任何响应内容,Django要求每个视图必须返回一个HttpResponse或者渲染后的模板响应,不然浏览器收不到数据,自然显示空白啦。
下面是一步步的解决方案:
1. 修正views.py,传递数组到模板
首先修改你的Compare函数,把数组打包进上下文(context),然后用render方法渲染模板:
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse("<h1>Welcome</h1>") # 顺便提一句,你原来的<h>标签少了层级数字,应该是<h1>这类哦 def Compare(request): # 补全你的数组(假设y1是完整的,比如下面这样) x = [98, 8998, 9, 67, 23] y = [67, 37, 9, 330, 123, 67, 56, 123] x1 = [2103, 23, 203, 12, 23, 12] y1 = [2, 45, 67, 89] # 补全你未写完的数组 # 把数组放到context字典里,方便模板调用 context = { 'x_list': x, 'y_list': y, 'x1_list': x1, 'y1_list': y1 } # 渲染模板,这里的'compare.html'是我们接下来要创建的模板文件 return render(request, 'compare.html', context)
2. 创建模板文件展示数组
在你的Django项目根目录下,创建一个templates文件夹(如果还没有的话),然后在里面新建compare.html文件,内容如下:
<!DOCTYPE html> <html> <head> <title>数组展示</title> </head> <body> <h1>静态数组内容</h1> <div> <h3>数组x:</h3> <ul> {% for number in x_list %} <li>{{ number }}</li> {% endfor %} </ul> </div> <div> <h3>数组y:</h3> <ul> {% for number in y_list %} <li>{{ number }}</li> {% endfor %} </ul> </div> <div> <h3>数组x1:</h3> <ul> {% for number in x1_list %} <li>{{ number }}</li> {% endfor %} </ul> </div> <div> <h3>数组y1:</h3> <ul> {% for number in y1_list %} <li>{{ number }}</li> {% endfor %} </ul> </div> </body> </html>
3. 配置URL映射
确保你的项目(或应用)的urls.py里,给Compare视图添加了URL路径:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('compare/', views.Compare, name='compare'), # 添加上这一行,这样访问域名/compare/就能看到结果啦 ]
4. 确认模板目录配置(重要)
最后检查一下项目根目录的settings.py里,TEMPLATES的DIRS配置是否包含了templates文件夹,这样Django才能找到我们创建的模板:
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], # 确保这一行存在,指向你的templates文件夹 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
完成这些步骤后,启动Django服务器,访问http://localhost:8000/compare/,就能看到你定义的所有数组内容啦!
内容的提问来源于stack exchange,提问作者Dinesh
相关产品推荐
相关产品推荐

