1
rogwan 2020-11-08 10:47:11 +08:00
这个需求是为了什么?
|
2
Eyon OP 哈哈,需求看起来很怪异,直接说问题吧:
需求是:用户每上传一张图片,就将这张图片作为附件发送给某个邮箱。 但现在的问题是?发送邮件时附件会将之前上传的图片都作为附件发送(而不是只发送最近上传的一张),不知道问题出在哪里。。。 if request.method == 'POST': obj = UploadFile(request.POST,request.FILES) fl = request.FILES.get('f1') if not fl: return HttpResponse('please select file') with open('uploads/'+fl.name,'wb+') as f: f.write(fl.read()) with open('uploads/'+fl.name,'rb') as ff: msg.attach_file(ff.name) msg.send() os.remove(ff.name) return HttpResponse('success') |
4
qdzzyb 2020-11-08 11:21:42 +08:00
msg 是不是一直都是同一个对象
|
5
nonduality 2020-11-08 11:23:02 +08:00
你需要做的是改变上传处理的逻辑,而不是重新加载 Django,没有哪个网络服务可以这么反复重启的( uwsgi 等可以在若干 request 后重启后端是另一回事)。
如果上传的文件值得做个记录,建议加一个数据表,包含一个 FileField 数据段。然后按照 Django 标准方法保存文件及相关数据,再发送文件。而发送邮件及附件最好丢到任务队列里,有个相关的数据表更方便提交给 celery 之类。 |
6
linnchord 2020-11-08 11:27:21 +08:00
…神逻辑…有种黑色幽默
|
8
rogwan 2020-11-08 14:27:45 +08:00 via Android
一个 request 就重载整个应用,你考虑下这个服务器能支持几个并发呀,是要准备跑路了吗
|