加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何编写填充了我的sqlite3 db的CSV文件?

发布时间:2020-12-20 13:29:46 所属栏目:Python 来源:网络整理
导读:我对如何使用models.py中给定用户的信息填充以下csv函数感到困惑.谁能指出我正确的方向?我是否需要在separare py文件中处理信息,还是可以在我的视图中进行处理? 我的观点是下载信息 def download(request): response = HttpResponse(mimetype='text/csv')
我对如何使用models.py中给定用户的信息填充以下csv函数感到困惑.谁能指出我正确的方向?我是否需要在separare py文件中处理信息,还是可以在我的视图中进行处理?

我的观点是下载信息

def download(request):
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; filename=UserData.csv'
    writer = csv.writer(response)
    writer.writerow(['Date','HighBGL','LowBGL','Diet','Weight','Height','Etc'])
    writer.writerow(['Info pertaining to date 1'])
    writer.writerow(['info pertaining to date 2'])
    return response

其中一个模型的信息我对保存很有意思

class DailyVital(models.Model):
    user =  models.ForeignKey(User)
    entered_at = models.DateTimeField()
    high_BGL = models.IntegerField()
    low_BGL = models.IntegerField()
    height = models.IntegerField(blank = True,null = True)
    weight = models.IntegerField(blank = True,null = True)

解决方法

首先,您需要查询您的django模型,例如:DailyVital.objects.all()或DailyVital.objects.filter(user = request.user)

然后你可以手动将对象转换为元组,或者你可以使用带有字段名列表的Django QuerySet的values_list method来返回元组而不是对象.就像是:

def download(request):
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment; filename=UserData.csv'
    writer = csv.writer(response)
    writer.writerow(['Date','Height'])
    query = DailyVital.objects.filter(user=request.user)
    for row in query.values_list('entered_at','high_BGL','low_BGL','weight','height'):
       writer.writerow(row)
    return response

如果你在Django中不需要它,你也可以考虑使用sqlite3命令行程序的-csv选项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读