使用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选择。
分享到:
相关推荐
这里使用了Django自带的 `JsonResponse` 来返回JSON格式的数据。 首先,在 `urls.py` 文件中定义URL路由,用来接收前端传来的PID参数,并将其传递给视图函数: ```python from django.urls import path from . ...
3. **使用场景**:在前端开发中,这些数据可以用于创建下拉菜单或级联选择器组件,用户可以选择自己的省份、城市和区县。例如,在注册页面、订单填写页面或者个人信息编辑页面,这样的功能非常常见。在后端,这些...
在IT领域,"三级联动"是一种常见的用户界面交互设计,主要应用于下拉选择框或级联菜单中。这种设计通常涉及到三个层次的数据关联,如在本例中的“全球国家,省份,城市”,用户在选择一个国家后,省份的选项会根据所...
在本项目中,我们主要探讨如何使用Python的Django框架构建一个人脸检测Web平台,并结合OpenCV库实现图像处理和人脸识别功能。这个平台提供API接口,使得其他应用程序能够方便地调用并集成到它们自己的系统中。下面...
3. **人脸识别技术**:该项目的核心部分可能涉及到人脸识别算法,如OpenCV库中的Haar特征级联分类器,或者深度学习模型如FaceNet或VGGFace。这些技术可以识别并验证用户的面部特征,从而决定是否允许通过门禁。 4. ...
在这个项目中,可能会使用Django的模型(models)来定义数据结构,并进行数据的增删改查操作,存储疲劳检测的记录和其他相关信息。 7. **API接口设计**: 为了与其他设备或服务交互,项目可能包含了RESTful API的...
1. **人脸识别**:OpenCV可以使用Haar级联分类器或深度学习模型如MTCNN来检测图像中的人脸。这些算法可以快速准确地定位到图像中的人脸区域。 2. **眼睛检测**:识别出人脸后,OpenCV可以进一步检测眼睛的位置,这...
- **生产环境部署**:介绍如何将Django项目部署到生产环境,包括服务器选择、配置等。 - **安全性考量**:部署过程中需要注意的安全事项,如HTTPS配置、敏感信息保护等。 ### 第十三章:输出非HTML内容 - **媒体...
在Django框架中,开发人员通常使用`models.py`文件来定义数据模型(数据库表结构),而`views.py`文件则用于处理用户请求并执行相应的业务逻辑,包括对数据库的增删改查操作。本篇内容将深入讲解如何在Django中通过`...
在你的视图(views.py)中,你可以使用这些序列化器将模型实例转换为JSON格式,以便在API响应中返回: ```python from rest_framework.response import Response from rest_framework.views import APIView from ....
这种数据结构通常用于实现地理信息的下拉选择功能,例如在网页表单或者应用程序中,用户可以选择国家,然后根据所选国家加载对应的省份,再进一步选择具体的省份来加载对应的城市。这种被称为“三级联动”的交互设计...
在这个项目中,OpenCV可能被用来执行人脸检测任务,例如使用Haar级联分类器或者基于深度学习的方法如SSD(Single Shot MultiBox Detector)或MTCNN(Multi-Task Cascaded Convolutional Networks)。 2. **面部检测...
04 做一个最简答web框架 05 MVC模式和MTV模式 06 django的一个简单应用 07 django静态文件之static 08 django的url控制系统 09 django的urlConf补充 第50章 01 django之视图函数的介绍 02 django视图之redirec 03 ...
在服务器端,你需要创建对应的API接口来处理这些请求,这可能涉及到Spring MVC、Django、Flask等框架,根据选定的省份ID查询城市并返回JSON数据。 总的来说,使用Ajax和jQuery配合数据库实现下拉框的二级联动,可以...
可能需要对用户数据进行加密存储,同时确保在传输过程中使用HTTPS等安全协议。 6. **用户体验设计**:微信小程序的界面设计需符合微信平台的交互规范,提供直观易用的用户界面,以增强用户满意度。良好的用户体验...
8. **集成和兼容性**:EasyUI 可以与其他前端框架(如 Bootstrap)和后端框架(如 Spring、Django 等)配合使用,同时兼容主流浏览器,包括 Chrome、Firefox、Safari、IE 等。 在实际项目中,通过学习和熟练运用...
在这个特定的"work-management-app"案例中,标签为"HTML",意味着该应用可能在前端开发中使用了HTML(超文本标记语言)作为基础结构来构建用户界面。 HTML,全称HyperText Markup Language,是创建网页的标准标记...
7. **Web框架**: 如果项目有后端开发,可能会使用像`Django`、`Flask`这样的Python Web框架,或者Node.js的`Express`,它们能简化服务器端编程并提供API接口供前端调用。 8. **RESTful API**: 为了使前端与后端通信...
在紧急休假应用程序的开发过程中,前端工程师可能会使用现代框架如React、Vue.js或Angular,它们可以简化开发流程,提高代码复用性,并提供更好的性能。这些框架允许构建组件化结构,使得应用程序更易于维护和扩展。...
CSS遵循级联、继承和特异性原则,确保样式在整个文档中的应用有条不紊。 在"gestion_ecole-master"这个文件名中,"master"通常表示这是项目的主分支,即开发者的原始或默认版本。这可能意味着项目源代码、资源文件...