django ajax json的实例代码
作者:q493383189 发布时间:2023-01-15 00:56:18
标签:django,ajax,json
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>
来源:https://blog.csdn.net/q493383189/article/details/75305347


猜你喜欢
- 简介壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经
- 本文实例讲述了python将ip地址转换成整数的方法。分享给大家供大家参考。具体分析如下:有时候我们用数据库存储ip地址时可以将ip地址转换
- 在安装tensorflow完成后,import tensorflow as tf出现问题,问题如下:>>> import
- language.xml 代码如下:<?xml version="1.0" encoding=
- python pip安装的包放在哪里使用 pip list 查看已安装的包名然后用 pip show 包名,就可以看到安装到哪了通常安装在p
- link(){var olink = getElementById("link");var text = olink.i
- 1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现############
- 最近 全栈数据工程师养成攻略 的微信群已经将近500人,开了二群之后为了打通不同微信群之间的消息,花了点时间做了个消息同步机器人,在任意群收
- 词法分析(Lexical Analysis):分析由字符组成的单词是否合法,如果没有问题的话,则产生一个单词流。 语法分析(Syntacti
- 前言功能新增学生显示学生查找学生删除学生存到文档创建入口函数在入口函数中,可以先打印一个菜单,用菜单来进行交互。def menu(): &n
- 很多时候我们需要让main函数不退出,让它在后台一直执行,例如:func main() { for i := 0;
- MySQL使用环境变量TMPDIR的值作为保存临时文件的目录的路径名。如果未设置TMPDIR,MySQL将使用系统的默认值,通常为/tmp、
- javascript中的数组对象捆绑了强大的方法因此它可以用很简短的代码实现强大的数组操作而这些功能要C或者c++实现的话可能需要花费几倍的
- 在写代码的时候,往往会漏掉日志这个关键因素,导致功能在使用的时候出错却无法溯源。其实,只需要写一个非常简单的日志装饰器,我们就能大大提升排查
- 前言许多任务程序如果为其构造为一个命令行界面,就可以通过接受不同的参数来改变它的工作方式。例如,在爬虫程序中,不同 URL&nbs
- 方法一:定义一个函数,参数为所要生成随机字符串的长度。通过random.randint(a, b)方法得到随机数字,具体函数如下:def g
- 前言2048游戏规则:简单的移动方向键让数字叠加,并且获得这些数字每次叠加后的得分,当出现2048这个数字时游戏胜利。同时每次移动方向键时,
- django模板使用media文件夹,想要在前端通过{{ MEDIA_URL }}无法显示图片,没有取到Media_url的值解决办法:TE
- OpenCV简介OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Ma
- 状态模式状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程。优点:封装了状态转换规则。枚举了可能的状态,在枚举状态之前需要确