django ajax json的实例代码

yipeiwu_com7年前Python基础

1. views.py

定义views视图函数,将数据存入字典。并用压缩为json格式,dumps,并return。

import json
def get_comments(request, article_id):
 article_obj = models.Article.objects.get(id=article_id)
 article_comments = article_obj.comment_set.select_related()
 comment_dict = {}
 for i in article_comments:
 print('comments_id', i.id)
 print('article_id', i.article_id)
 print('parent_comment_id', i.parent_comment_id)
 print('comment_type', i.comment_type)
 print('user_id', i.user_id)
 print('user_name', i.user.name)
 print('comment', i.comment)
 print('date', type(i.date))
 print('date', time.strftime("%Y-%m-%d %H:%M:%S", i.date.timetuple()))
 comment_dict[i.id] = [i.comment_type, i.comment, time.strftime("%Y-%m-%d %H:%M:%S", i.date.timetuple()), i.article_id, i.user_id, i.user.name, i.parent_comment_id]
 comment_json = json.dumps(comment_dict)
 return HttpResponse(comment_json)

2. article.html中编辑js jquery,接受json数据,并处理并添加到html中

<script>
 function getComments() {
 $.get("{% url 'get_comment' one_article.id %}", function(callback){
 console.log(callback);
 var obj = JSON.parse(callback);
 console.log(this.comment_type);
 for (var key in obj){
 console.log(key);
 console.log(obj[key])
 }
 }
 function getCsrf() {
 return $("input[name='csrfmiddlewaretoken']").val();
 }
 $(document).ready(function () {
 $(".comment-box button").click(function () {
 var comment_text = $('.comment-box textarea').val();
 if (comment_text.trim().length < 5){
 alert("评论不能少于5个字")
 }else {
 $.post(
  "{% url 'post_comment' %}",
  {
  'comment_type':1,
  article_id: "{{ one_article.id }}",
  parent_comment_id:null,
  'comment':comment_text.trim(),
  'csrfmiddlewaretoken':getCsrf()
  },
  function (callback) {
  console.log(callback);
  if (callback == 'post-comment-success'){
  alert('post-comment-success');
  getComments();
  }
  }
 )
 }
 })
 })
</script>

以上这篇django ajax json的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python中的pack和unpack的使用

不同类型的语言支持不同的数据类型,比如 Go 有 int32、int64、uint32、uint64 等不同的数据类型,这些类型占用的字节大小不同,而同样的数据类型在其他语言中比如 Py...

python conda操作方法

conda 虚拟环境安装 List item conda env list #查看已安装虚拟环境 coda创建虚拟环境非常方便:官方教程:https://conda.io/project...

python 2.6.6升级到python 2.7.x版本的方法

1.下载python2.7.x wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz 2.解压并编译安装 tar -...

Python: 传递列表副本方式

有时候,需要禁止函数修改列表。 为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。 要将列表的副本传递给函数,可以像下面这样做:...

Python开发如何在ubuntu 15.10 上配置vim

Python开发如何在ubuntu 15.10 上配置vim

1,安装vim,你可以使用ubuntu 自带的apt-get 工具安装。 apt-get install vim-gnome 2,安装成功后,进行配置 1>首先进行自动提示补...