使用JSON代替XML做为数据传输是个不错的选择,下面我们看看django中如何使用json。
首先下载json-py的类库,http://blog.ntsky.com/wp-content/uploads/json-py-3_4.zip
我们使用关联select作为例子:
<select name="city_id" id="city_id" onChange="getFacilityOptions(this.value)">
{% if city_list %}
{% for city in city_list %}
<option value="{{city.id}}">{{city.name}}</option>
{% endfor %}
{% endif %}
</select>
<select name="facility_id" id="facility_id" style="display:none">
</select>
我们选择city时候关联出facility,这里使用jquery的ajax函数
function getFacilityOptions(city_id){
$.ajax({
type: "GET",
url: "/raw/facility_list/"+city_id+"/",
dataType: "json",
success: function(json){
// 显示设施
$("#facility_id").show();
var facilitySelect = document.getElementById("facility_id");
// 清空
for ( var i=facilitySelect.options.length-1; i>-1; i– ){
facilitySelect[i] = null;
}
// 创建select选项
for(i=0;i<json.length;i++){
facilitySelect.options[i] = new Option();
facilitySelect.options[i].text = json[i].label;
facilitySelect.options[i].value = json[i].text;
}
}
})
}
通过ajax发送请求得到json数据,然后解析json数据输出select的option
# 城市设施列表
def facility_list(request,city_id):
li = []
city = get_object_or_404(City, pk=city_id)
facility_list = CityFacility.objects.filter(city=city)
for object in facility_list:
d = {}
d['label'] = object.facility.name
d['text'] = object.facility.id
li.append(d)
return HttpResponse(json.write(li))
这里定义了list,里面包含了一组Dictionary
这样级联选择就OK了。选择city发送ajax请求django,django返回json数据,javascript解析json数据得到facility的select选择。
分享到:
相关推荐
它几乎与任何东西兼容:存储在字符串中的JSON,一个jsonfield(使用django.contrib.postgres或 )或任何可以序列化为JSON的python对象(使用 )。 演示版 见 安装 在命令行中: pip install django-prettyjson 配置...
应用程序通过添加了对在Django管理中编辑JSONField的支持。 快速开始 通过pip安装应用程序: pip install django-admin-json-editor 将应用程序添加到INSTALLED_APPS设置: INSTALLED_APPS = [ ... ' django_...
Django-JSONEditor是适用于Django的各种JSONField的适用于Django的在线结构化JSON输入小部件。 javascript JSONEditor在线编辑器的代码已从。 在此处查看JavaScript在线JSON编辑器的最新版本: : 样本视图: ...
在Django中,使用JSON传输数据,有两种方式,一种是使用Python的JSON包,一种是使用Django的JsonResponse 方法一:使用Python的JSON包 from django.shortcuts import HttpResponse import json def testjson...
http://127.0.0.1:8000/static/iphone.png,运行起来访问这个可以看到图片,http://127.0.0.1:8000/访问这个可以看到JSON数据,一个简单的后端
django-json-rpc, 面向 Django的JSON RPC实现 Django json-rpc django供电站点的基本 json rpc实现。功能:简单,Pythonic API对 Django 身份验证的支持支持所有官方 Django python/版本组合支持 json
django纠缠使用标准Django表单编辑JSON模型字段。... 通过使用django-entangled ,可以使用Django ModelForm ,并将该表单字段的全部或子集存储在关联模型内部的一个或多个JSON字段中。安装只需安装此Dj
主要介绍了django实现HttpResponse返回json数据为中文,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Ajax请求接口,Django框架下从该接口接收Ajax发送的json数据,同时将新的json数据返回给Ajax,Ajax收到后在js进行处理,然后和页面内容交互。整个数据前后端交互全部采用json格式。代码高度封装,只需要更改json内容...
django-json-widget 另一种可轻松编辑新Django字段JSONField(PostgreSQL特定模型字段)的小部件 快速开始 安装django-json-widget: pip install django-json-widget 将其添加到您的INSTALLED_APPS: INSTALLED_...
资源来自pypi官网。 资源全名:django-logging-json-1.5.3.tar.gz
资源来自pypi官网。 资源全名:django-json-field-0.4.1.tar.gz
利用django实现了省市县的级联下拉。数据库采用的是sqlite。
主要介绍了Django接收post前端返回的json格式数据代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
如果要在Django模板中转换varianble,可以使用jsonify过滤器: {% load jsonify %} {% block content %} [removed] <![CDATA[ var items = {{ items|jsonify }}; ]]>[removed] {% endblock %} 如果要从视图返回...
Django 分页查询并返回 json ,需要将返回的 queryset 序列化, demo 如下: # coding=UTF-8 import os from django.core import serializers from django.core.paginator import Paginator, PageNotAnInteger, ...
Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。 强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。 丰富的模板语言。Django模板语言功能丰富...
用法只需导入装饰器,使用并返回JSON可序列化的对象即可: from jsonview.decorators import json_view@json_viewdef my_view(request): return { 'foo': 'bar', }(CBV)可以从JsonView继承,使用Django的@method_...
主要介绍了Django中模型Model添加JSON类型字段的方法,实例分析了Python的Django框架模型使用技巧,需要的朋友可以参考下