跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 可以在 views 中重载 django 么?
未分類
8 11 月 2020

可以在 views 中重载 django 么?

可以在 views 中重载 django 么?

資深大佬 : Eyon 3

有个需求,需要在 view 中完成某个事情后,重新加载 django,能实现吗?
大佬有話說 (8)

  • 資深大佬 : rogwan

    这个需求是为了什么?

  • 主 資深大佬 : Eyon

    哈哈,需求看起来很怪异,直接说问题吧:

    需求是:用户每上传一张图片,就将这张图片作为附件发送给某个邮箱。

    但现在的问题是?发送邮件时附件会将之前上传的图片都作为附件发送(而不是只发送最近上传的一张),不知道问题出在哪里。。。

    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’)

  • 主 資深大佬 : Eyon

    @rogwan 但是重载 django 就没有问题

  • 資深大佬 : qdzzyb

    msg 是不是一直都是同一个对象

  • 資深大佬 : nonduality

    你需要做的是改变上传处理的逻辑,而不是重新加载 Django,没有哪个网络服务可以这么反复重启的( uwsgi 等可以在若干 request 后重启后端是另一回事)。

    如果上传的文件值得做个记录,建议加一个数据表,包含一个 FileField 数据段。然后按照 Django 标准方法保存文件及相关数据,再发送文件。而发送邮件及附件最好丢到任务队列里,有个相关的数据表更方便提交给 celery 之类。

  • 資深大佬 : linnchord

    …神逻辑…有种黑色幽默

  • 主 資深大佬 : Eyon

    @qdzzyb 一语惊醒梦中人哈哈哈,新手就是这样脑壳转不过弯

  • 資深大佬 : rogwan

    一个 request 就重载整个应用,你考虑下这个服务器能支持几个并发呀,是要准备跑路了吗

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具