python前端交互_python+django开发中与前端交互中的知识归集梳理(ajax,render,json等)...

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:34   1424   0

django render 返回数据及使用问题

后台用render返回一个{‘structures’,[{'value','2'},{'title','办公室'},....]}格式,前台接收,浏览器会报错“Uncaught SyntaxError: Unexpected token :”,大概是在context转换时html标签转义问题。代码如下:

return render(request, 'adm/supervise.html', {'structures': ret})

下面是正确的代码,主要是用了json.dumps,另外前台使用数据需要加 |safe 关键字

return render(request, 'adm/supervise.html', {'structures': json.dumps(ret)}) # 注意用json.dumps进行序列化,前端加|safe

classSuperviseView(LoginRequiredMixin, TemplateView):#template_name = 'adm/supervise.html'

defget(self, request):#{"value": "2", "title": "办公室"}

structure_list =[]

structures_dict={}

structures= Structure.objects.exclude(id__in=[1, 5]).values()for item instructures:

structure_dict={}

dict_value= str(item['id'])

dict_name= item['name']#dict_text = item.get('id') # 从queryset中取值的方法

structure_dict.update({'value': dict_value, 'title': dict_name})

structure_list.append(structure_dict)

structures_dict= {'structures': structure_list}

ret=structures_dictreturn render(request, 'adm/supervise.html', {'structures': json.dumps(ret)}) #注意用json.dumps,前端加|safe

如果后台不需要返回html,只要返回接口数据可以

ret = {'structures':list}return HttpResponse(json.dumps(ret),content_type="application/json")

Ajax跨域访问出现Uncaught SyntaxError: Unexpected token : 解决方案

原理讲的比较清楚,学习。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP