django 数据库 时间数据传输Bug修改以及体会 ——Einste的django结队编程<一>

本文记录了一次使用Django进行活动信息展示时遇到的时间数据格式问题及解决过程,探讨了如何正确处理时间戳以避免JSON传输错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


django数据库  时间数据传输Bug修改与体会--Einste的django结队编程<一>


        本人虽然不是第一次使用django来做一些轻量级的数据库开发,但是之前的开发都是做一些简单的库,无论是django在传输数据上的快速性还是django开发的迅速性都没有得到切实的感受,这次开发过程中虽然拿到了很多现成的code,但是有很多django开发过程难以忽略的问题是我第一次遇到,所以在不断地尝试与不断地谷歌、百度当中总算在对这个框架的理解上又更进了一步,这里就分享一个本人在开发过程当中遇到的bug。


<pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:9.6pt;"><span style="color:#808080;font-style:italic;">
</span><pre name="code" class="python">class ActivityDetail(APIView):
    #@login_required()
    def get(self):
        self.check_input('id')
        temp = Activity.objects.get(id = 'id')
        #temp = Activity.objects.get(id=1)
        ActivityDic = {}
        ActivityDic['name'] = temp.name
        ActivityDic['key'] = temp.key
        ActivityDic['description'] = temp.description
        ActivityDic['startTime'] = temp.start_time
        ActivityDic['endTime'] = temp.end_time
        ActivityDic['place'] = temp.place
        ActivityDic['bookStart'] = temp.book_start
        ActivityDic['bookEnd'] = temp.book_end
        ActivityDic['totalTickets'] = temp.total_tickets
        ActivityDic['picUrl'] = temp.pic_url
        ActivityDic['remainTickets'] = temp.remain_tickets
        ActivityDic['currentTime'] = datetime.datetime.now()
        ActivityDic['status'] = temp.status
        return ActivityDic

先解释一下上面的代码,这是一个用于显示某活动信息的一个class, 继承了外部的APIView,其作用并不会在这里的代码体现出来所以不做解释。
可以看到我define了一个get函数,这是用于获取到django构建的服务器当中存储的信息,在这里就是获取我们上传的活动详情,这个活动详情是存在models.py下的一个
表Activity里面,这里使用的一些基本函数我也不在此做解释了。

这个代码在运行的时候会在页面上返回一个错误

这就很奇怪了,这里报了一个关于id的错误但是我仔细查看了一下这里并没有发现id元素能导致的错误,我的同伴提醒我从编译器上查看bug,所以我就查看了一下
Pycharm上面报出的错误:


    

     报错不变但是我看到了报错是在68行,所以我查看了一下68行,68行代码是

<pre style="background-color:#ffffff;color:#000000;font-family:'宋体';font-size:9.6pt;"><pre name="code" class="python">   ActivityDic['currentTime'] = datetime.datetime.now()



      

      其实我用这个datetime的时候就很有疑问这个函数到底返回的是什么,我上网查了一下,才知道这个函数返回的数据格式是JSON并不支持的,而我们的DJango传输数据时

      使用的恰是JSON,如果数据格式出现问题就会报出BUG,所以改成这样

   ActivityDic['currentTime'] = datetime.datetime.now().timestamp()
这个timestamp()函数是一个将datetime.now()返回的时间数值转化为时间戳的函数,JSON是支持时间戳的返回的,于是bug就解决了。


这是一个结队编程遇到的错误,当然这个bug的修改不能归功于我一个人,从我的角度来看,结队编程有助于修改bug,毕竟当局者迷,很多时候自己找一个下午或是
一个晚上都无法发现的错误,你的队友也许一眼就能看出来,无论是粗心还是队友在这里有所经验,这样的修改都可以大幅增加bug的修改效率,在讨论这个问题过程中
你也可以弄清楚这个问题背后的编程知识,但是我必须说,结队编程开发速度会降低很多,两个人一起写代码,就无法同时完成一个阶段的所有任务,如果这个阶段的
任务只是繁琐,那么结队编程只是让一个人帮助另一个人修改一些无聊的错误,对于两个人对整个框架整个开发的理解并没有任何帮助,所以结队开发需谨慎。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值