Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我在试图调用模板中的Javascript数组时会出现名称错误?_Python_Json_Pyramid_Chameleon - Fatal编程技术网

Python 为什么我在试图调用模板中的Javascript数组时会出现名称错误?

Python 为什么我在试图调用模板中的Javascript数组时会出现名称错误?,python,json,pyramid,chameleon,Python,Json,Pyramid,Chameleon,以下是定义jsdata的my home page的可调用视图: @view_config(route_name='home_page', renderer='templates/edit.pt') def home_page(request): if 'form.submitted' in request.params: name= request.params['name'] input_file=request.POST['stl'].filename

以下是定义jsdata的my home page的可调用视图:

@view_config(route_name='home_page', renderer='templates/edit.pt')
def home_page(request):
    if 'form.submitted' in request.params:
        name= request.params['name']
        input_file=request.POST['stl'].filename
        vertices, normals = [],[]
        for line in input_file:
            ....

        ordering=[]

        ...parsing data...

        data=[vertices,ordering]
        jsdata=json.dumps(data)
        renderer_dict = dict(name=name,data=jsdata)
        ...
        html_string = render('tutorial:templates/view.pt', renderer_dict, request=request)
        with open(filename,'w') as file:
                file.write(html_string)
        return HTTPFound(location=request.static_url('tutorial:pages/%(pagename)s.html')% {'pagename':name}) 

    return {}    
我也在该文件(views.py)中导入了json。在这里,它是在view.pt模板上呈现的

<script>
var data = ${structure:jsdata};
</script>

var data=${structure:jsdata};
NameError指向第二行的jsdata部分。为什么会这样?名称错误不意味着它是未定义的吗?为什么说jsdata是未定义的?是否应将其作为关键字传递到渲染函数中

另外:我知道jsdata定义下面可能有错误。我已经包括了这一部分,以防它帮助您了解我想用jsdata做什么

renderer_dict = dict(name=name,data=jsdata)

您将其作为
data
而不是
jsdata
放入。因此,您可能需要
${structure:data}
,或者更改
渲染器的指定。

您可以1)修复缩进,2)发布实际的回溯吗?1)缩进有什么问题,2)如果回溯指的是完整的错误声明,我很抱歉,但我现在不在计算机旁。我可以在几小时内发布。看起来这个缩进是由@MartijnPieters为您修复的。您的装饰器没有正确地与函数对齐--我不确定这是否是唯一的问题。所以我想现在你们可以把它理解为“1)检查缩进以确保Martijn正确”;-)。是的,完整的错误语句就是我所说的2)。:-)