当前位置: 首页 > 知识库问答 >
问题:

OSError at/app/为什么会发生这种奇怪的错误?

高嘉树
2023-03-14

我收到一个错误:

/app处的OS错误/

[Errno 63]文件名太长:"/Users/XXX/test app/templates/jinja 2/{ ' items ':[{ '-':'-',' A': 'a ',' B': 'b ',' C: 'c ',' D': 'd'}]}

我想将json_parse方法的结果的<code>json_dict</code>嵌入到<code>视图中。将复制到index.html。我在<code>视图中编写。py类似

from django.shortcuts import render
import json

def index(request):
    f = open('./data/data.json', 'r')
    json_dict = json.load(f)
    return render('./index.html',json_dict)

我写的index.html像

<html>
 <head>
 <script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.8.2/chosen.jquery.min.js"></script>
  <script src="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.jquery.js"></script>
 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/chosen/1.4.2/chosen.css">
 </head>
 <body>
    <select id="mainDD" data-placeholder="Choose" class="chzn-select" style="width:600px;">
    {% for k, v in json_dict.items %}
            <option>{{ v }}</option>
    {% endfor %}
    </select>
  </body>
</html>

json_dict{'项目': [{'---': '---' ~~~ 字典。我真的不明白为什么我不能发送json_dictindex.html。我使用渲染方法是错误的吗?我该如何解决这个问题?

应用(子应用)urls.pyviews.py

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


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

父应用程序的urls.py为

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

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^app/', include('app.urls')),
]

Traceback是

Traceback:

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/xxx/testapp/app/views.py" in index
  8.     return render('./index.html',json_dict)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/shortcuts.py" in render
  30.     content = loader.render_to_string(template_name, context, request, using=using)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/loader.py" in render_to_string
  67.         template = get_template(template_name, using=using)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/loader.py" in get_template
  21.             return engine.get_template(template_name)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/backends/django.py" in get_template
  39.             return Template(self.engine.get_template(template_name), self)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/engine.py" in get_template
  162.         template, origin = self.find_template(template_name)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/engine.py" in find_template
  136.                         name, template_dirs=dirs, skip=skip,

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/loaders/base.py" in get_template
  38.                 contents = self.get_contents(origin)

File "/Users/xxx/myenv/lib/python3.5/site-packages/django/template/loaders/filesystem.py" in get_contents
  28.             with io.open(origin.name, encoding=self.engine.file_charset) as fp:

Exception Type: OSError at /app/
Exception Value: [Errno 63] File name too long: "/Users/xxx/testapp/templates/jinja2/{'items': [{'---': '---', ‘A’: ‘a’, ‘B’: ‘b’, ‘C: ‘c’, ‘D’: ‘d’}]}

通过答案进行编辑后,我在 /app/ init() 上得到了一个错误 TypeError 得到了一个意外的关键字参数 “match_extension”。回溯说回溯:

文件/用户/xxx/myenv/lib/python3.5/站点包/django/模板/utils.py在getitem65。返回自己。_engines[别名]

在处理上述异常(“jango”)期间,发生了另一个异常:

文件“/用户/xxx/myenv/lib/python3.5/site-packages/django/core/处理程序/异常.py”在内部41中。响应 = get_response(请求)

_get_response 187.response=self中的文件“/Users/xxx/myenv/lib/python3.5/site-packages/django/core/handers/base.py”。进程异常中间件(e,请求)

文件“/Users/XXX/myenv/lib/python 3.5/site-packages/django/core/handlers/base . py”in _ get _ response 185。response = wrapped _ callback(request,*callback_args,**callback_kwargs)

文件“/Users/xxx/testapp/app/views.py”位于索引13.return render(请求,'jinja2/index.html',{'json_dict':json_dic})

render 30中的文件“/Users/XXX/myenv/lib/python 3.5/site-packages/django/shortcut s . py”。content = loader . render _ to _ string(模板名称,上下文,请求,使用=使用)

文件"/用户/xxx/myenv/lib/python3.5/site-包/django/模板/loader.py"在render_to_string67.模板=get_template(template_name,使用=使用)

文件“/用户/xxx/myenv/lib/python3.5/site-packages/django/模板/加载器.py”,get_template 18。引擎 = _engine_list(使用)

文件/用户/xxx/myenv/lib/python3.5/site-包/django/模板/loader.py在_engine_list72.返回engines.all()如果使用是无其他[引擎[使用]]

文件“/用户/xxx/myenv/lib/python3.5/site-packages/django/模板/utils.py”在所有89个中。返回 [自我[别名] 为自我中的别名]

文件“/用户/xxx/myenv/lib/python3.5/site-packages/django/template/utils.py”在89中。返回 [自我[别名] 为自我中的别名]

getitem 80.engine=engine_cls(params)中的文件“/Users/xxx/myenv/lib/python3.5/site-packages/django/template/utils.py”

init 32中的文件“/Users/XXX/myenv/lib/python 3.5/site-packages/django/template/backends/django . py”。self.engine = Engine(self.dirs,self.app_dirs,* *选项)

异常类型:Type error at/app/Exception Value:init()获得了意外的关键字参数“match_extension”


共有1个答案

陶刚豪
2023-03-14

你对 render() 的调用是错误的,试试这个:

def index(request):
    with open('./data/data.json', 'r') as f:
        json_dict = json.loads(f.read())
    return render(request, 'index.html', {'json_dict': json_dict})

所有内容都在文档中:

https://docs.djangoproject.com/en/1.11/topics/http/shortcuts/#render

 类似资料:
  • 问题内容: 我阅读了文档以及可以找到的关于PriorityQueue的所有信息,但仍然不明白为什么输出如此奇怪,我的意思是我无法理解添加订单的意义,有人可以解释吗? 输出: 问题答案: 仅保证第一个元素最小。 甲 二进制堆仅在每个子HEAB(子树)保证根是最小的元素。 堆实际上是一个完整树(或它的数组表示形式)。每当您插入违反条件的元素(小于根)时,都会筛选旧根。这是在堆上递归完成的。 这种部分排

  • 问题内容: 我正在使用Python 3.6.1,但遇到了一些非常奇怪的事情。我有一个简单的字典作业错字,花了很长时间才找到。 输出量 代码在做什么?IMO应该什么时候都没有提出。起初,我认为它正在创建一个切片。但是,键入会引发一个。我也输入了控制台,但控制台没有打印任何内容。我以为也许它回来了,但是我不太确定。 我还认为这可能是单行if语句,但这也不应该是正确的语法。 此外,应提出一个。 我很困惑

  • 当我发现这个奇怪的东西时,我正在玩JSX。使用以下JSX: 会产生正确的结果: 但我想在引号周围添加双引号,因此我尝试: 令我惊讶的是,它给出了正确的输出: 我希望得到类似的输出,因为它是字符串文字: 既然在字符串文本中,它为什么不按字面意思告诉我?这是巴贝尔的错误吗? 注意:这是一个自我提问和回答

  • 问题内容: 因此,当我发现一些非常奇怪的东西时,我正在使用Node.js REPL和Underscore库。如果I ,则该变量是全局设置的(显然)。然后,当我尝试运行一个简单的命令时,它会打印出来(显然,再次)。但是,此后立即运行,因为变量设置为,它会打印。 为什么这样做呢?如果我从js文件运行相同的代码,则不会发生。这是正常的Node事情,还是全部错误? 仅供参考:节点v0.10.10 问题答案

  • 根据Java教程 将包装类型(整数)的对象转换为其相应的基元(int)值称为取消装箱。当包装类的对象为: 作为参数传递给需要相应基元类型的值的方法 分配给相应基元类型的变量 为什么在这种情况下会发生拆箱? 在这种情况下,这些事情发生在哪里?是否有管理数组中元素访问的底层方法?或者[]暗示某种变量?

  • 安装问题 PS C:\Users\Administrator sharp@0.21.3安装C:\用户\管理员\gatsby-site3\node_modules\锐(节点安装/libvips 使用缓存的C:\Users\Administrator\AppData\Roaming\npm-cache\u libvips\libvips-8.7.0-win32-x64.tar.gz info shar