Python 接收到Django应用程序中my dict对象没有属性META的错误
我正在尝试提取json数据,并使用Django将其显示在页面上。我收到以下错误: “dict”对象没有属性“META” 在my views.py文件的第36行,如下所示: 返回呈现(请求'base_generic.html',context=context) 在一次搜索中,我找到了正确的括号,我也找到了,但老实说,这让我更加困惑 关于为什么会发生这种情况或者我做错了什么,你有什么建议吗?非常感谢您,如果有什么我可以提供,使我的问题更清楚,我会这样做。谢谢大家抽出时间 视图.pyPython 接收到Django应用程序中my dict对象没有属性META的错误,python,django,Python,Django,我正在尝试提取json数据,并使用Django将其显示在页面上。我收到以下错误: “dict”对象没有属性“META” 在my views.py文件的第36行,如下所示: 返回呈现(请求'base_generic.html',context=context) 在一次搜索中,我找到了正确的括号,我也找到了,但老实说,这让我更加困惑 关于为什么会发生这种情况或者我做错了什么,你有什么建议吗?非常感谢您,如果有什么我可以提供,使我的问题更清楚,我会这样做。谢谢大家抽出时间 视图.py from dja
from django.shortcuts import render
from datetime import datetime
import requests
def index(request):
request = requests.get(MY_URL_IS_HERE).json()
current_temperature = request['currently']['temperature']
current_cloud_cover = request['currently']['cloudCover']
current_humidity = request['currently']['humidity']
current_near_storm_distance = request['currently']['nearestStormDistance']
current_near_storm_bearing = request['currently']['nearestStormBearing']
current_precip_intensity = request['currently']['precipIntensity']
current_uv_index = request['currently']['uvIndex']
current_sunrise = datetime.fromtimestamp(request['daily']['data'][0]['sunriseTime'])
current_sunset = datetime.fromtimestamp(request['daily']['data'][0]['sunsetTime'])
test = 'test'
context = {
'current_temperature':current_temperature,
'current_cloud_cover':current_cloud_cover,
'current_humidity':current_humidity,
'current_near_storm_distance':current_near_storm_distance,
'current_near_storm_bearing':current_near_storm_bearing,
'current_precip_intensity':current_precip_intensity,
'current_uv_index':current_uv_index,
'current_sunrise':current_sunrise,
'current_sunset':current_sunset,
}
return render(request, 'base_generic.html', context=context)
generic_base.html
<!DOCTYPE html>
<html lang="en">
<head>
{% block title %}<title>weather</title>{% endblock %}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!-- Add additional CSS in static file -->
{% load static %}
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-2">
{% block sidebar %}
{% endblock %}
</div>
<div class="col-sm-10 ">{% block content %}{% endblock %}</div>
</div>
</div>
</body>
</html>
{% extends "base_generic.html" %}
{% block content %}
<ul>
<li><strong>current_cloud_cover:</strong> {{ current_cloud_cove }}</li>
<li><strong>current_temperature:</strong> {{ current_temperature }}</li>
<li><strong>current_humidity:</strong> {{ current_humidity }}</li>
<li><strong>current_near_storm_distance:</strong> {{ current_near_storm_distance }}</li>
<li><strong>current_near_storm_distance:</strong> {{ current_near_storm_distance }}</li>
<li><strong>current_near_storm_bearing:</strong> {{ current_near_storm_bearing }}</li>
<li><strong>current_precip_intensity:</strong> {{ current_precip_intensity }}</li>
<li><strong>current_uv_index:</strong> {{ current_uv_index }}</li>
<li><strong>current_sunrise:</strong> {{ current_sunrise }}</li>
<li><strong>current_sunset:</strong> {{ current_sunset }}</li>
</ul>
{% endblock %}
{%block title%}天气{%endblock%}
{%load static%}
{%块边栏%}
{%endblock%}
{%block content%}{%endblock%}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
{% block title %}<title>weather</title>{% endblock %}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!-- Add additional CSS in static file -->
{% load static %}
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-sm-2">
{% block sidebar %}
{% endblock %}
</div>
<div class="col-sm-10 ">{% block content %}{% endblock %}</div>
</div>
</div>
</body>
</html>
{% extends "base_generic.html" %}
{% block content %}
<ul>
<li><strong>current_cloud_cover:</strong> {{ current_cloud_cove }}</li>
<li><strong>current_temperature:</strong> {{ current_temperature }}</li>
<li><strong>current_humidity:</strong> {{ current_humidity }}</li>
<li><strong>current_near_storm_distance:</strong> {{ current_near_storm_distance }}</li>
<li><strong>current_near_storm_distance:</strong> {{ current_near_storm_distance }}</li>
<li><strong>current_near_storm_bearing:</strong> {{ current_near_storm_bearing }}</li>
<li><strong>current_precip_intensity:</strong> {{ current_precip_intensity }}</li>
<li><strong>current_uv_index:</strong> {{ current_uv_index }}</li>
<li><strong>current_sunrise:</strong> {{ current_sunrise }}</li>
<li><strong>current_sunset:</strong> {{ current_sunset }}</li>
</ul>
{% endblock %}
{%extensed“base_generic.html”%}
{%block content%}
- 当前云覆盖范围:{{current\u cloud\u cove}
- 当前温度:{{current\u temperature}
- 当前湿度:{{current\u湿度}
- 当前风暴附近距离:{{current\u near\u storm\u distance}
- 当前风暴附近距离:{{current\u near\u storm\u distance}
- 风暴附近的海流方向:{{strong>风暴附近的海流方向}
- 当前精度强度:{{current\u precip\u intensity}
- 当前紫外线指数:{{current\u uv\u index}
- 当前日出:{{当前日出}
- 当前日落:{{当前日落}
{%endblock%}
完全回溯
环境:
请求方法:获取请求URL:
Django版本:2.2.3 Python版本:3.6.8已安装的应用程序:
['django.contrib.admin','django.contrib.auth',
'django.contrib.contenttypes','django.contrib.sessions',
已安装'django.contrib.messages','django.contrib.staticfiles']
中间件:['django.Middleware.security.SecurityMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xframeoptions中间件']
回溯:
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/core/handlers/exception.py”
在内部
34响应=获取响应(请求)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/core/handlers/base.py”
你得到了什么回应
115response=self.process\u异常\u由\u中间件(e,请求)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/core/handlers/base.py”
你得到了什么回应
113响应=包装的回调(请求,*回调参数,**回调参数)
索引中的文件“/home/doug/Documents/opengarden/wx/views.py”
36返回呈现(请求'base_generic.html',context=context)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/shortcuts.py”
渲染中
36content=loader.render_to_string(模板名称、上下文、请求、using=using)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/template/loader.py”
在render_to_字符串中
62返回template.render(上下文、请求)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/template/backends/django.py”
渲染中
61返回self.template.render(上下文)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/template/base.py”
渲染中
169使用context.bind_模板(self):
文件“/usr/lib/python3.6/contextlib.py”在输入中
81返回下一个(self.gen)
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/template/context.py”
in-bind_模板
246更新(处理器(自我请求))
文件
“/home/doug/.virtualenvs/django/lib/python3.6/site packages/django/template/context_processors.py”
调试中
40如果settings.INTERNAL\u IPS中的settings.DEBUG和request.META.get('REMOTE\u ADDR'):
异常类型:AttributeError位于/wx/异常值:“dict”对象
没有属性“META”
我的问题是,我使用的变量名“request”与函数参数冲突。我一改变这一点,它就起作用了
感谢Selcuk和GavinH的帮助。在此处使用不同的变量名,因为它与函数参数冲突:
request=requests.get(MY_URL\u IS_here).json()。我已经找了大约两个小时的答案,这就解决了我的问题。现在出于某种原因,它只是显示一个空白页,而不是我的数据,但这是一个新问题。非常感谢您抽出时间!你可能想呈现“index.html”
而不是“base\u generic.html”
@GavinH你们都太棒了。疯狂的是,我怎么会被这样的小事缠住而忽略了。非常感谢你抽出时间。