热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Django发送Json格式数据

转载地址:http:www.husama.com44.html简要RESTfulAPI是目前比较成熟的一套互联网应用程序的API设计理论.具体设计可以看一下RESTfulAPI设计指南

转载地址:http://www.husama.com/44.html

简要

RESTful API是目前比较成熟的一套互联网应用程序的API设计理论.具体设计可以看一下 RESTful API 设计指南 by 阮一峰

Django的应用

本文讨论RESTful API的一个小应用,当Django作为类似Android,IPhone等APP的后台框架时,往往Response的不是一个Html,而是一些序列化的数据,比如Json.
所以我们需要把models里的数据提取出来转化为json,虽然有基于Django的Django REST framework可以直接用,但是自己写其实也挺简单的:-)

简单的一个例子

这里我用的是python3.4和Django1.8.

models.py

12345678910 from django.db import modelsfrom datetime import datetimeclass Article(models.Model):        title = models.CharField(u'标题',max_length=256)        content = models.TextField(u'内容')        time = models.DateTimeField(u'发表时间', auto_now_add=True)        def __str__(self):                return self.title        def toDict(self):                return {u'标题':self.title,u'内容':self.content,u'发表时间':self.time.strftime('%Y-%m-%d %H:%M:%S')}

 注意这里的datatime是不可以直接使用的!详情请看:datatime-廖雪峰的官方博客

views.py

 models.py中的toDict将model对象格式化成字典类型,views.py中的toDicts函数将返回字典列表.而json.dumps序列化的时候,加入ensure_ascii=False是为了防止编码错误,就像下面:
[{“\u5185\u5bb9”: “\u6211\u7684\u7b2c\u4e00\u4e2adjango project,\u8fd4\u56deJSON\u6570\u636e”, “\u6807\u9898”: “\u80e1\u6e58\u94ed\u7684\u6587\u7ae0″,”\u53d1\u8868\u65f6\u95f4”: “2015-10-15 10:15:41”}, {“\u5185\u5bb9”: “\u53d1\u9001\u4e86\u4e00\u7ec4json\u6570\u636e”, “\u6807\u9898”: “hello,json”,”\u53d1\u8868\u65f6\u95f4″: “2015-10-15 10:14:50”}

添加ensure_ascii=False后就正常了:

[{“标题”: “胡湘铭的文章”, “内容”: “我的第一个django project,返回JSON数据”,”发表时间”: “2015-10-15 10:15:41”}, {“标题”: “hello,json”, “内容”: “发送了一组json数据”,”发表时间”: “2015-10-15 10:14:50”}]

是不是很简单.


推荐阅读
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
author-avatar
手机用户2502939545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有