Python 在mysql/django中将图像保存在后端数据库中是一种好做法吗?

Python 在mysql/django中将图像保存在后端数据库中是一种好做法吗?,python,mysql,django,Python,Mysql,Django,我正在尝试创建我的个人网页。因此,我需要加入推荐小组,其中包含前雇员/朋友等的推荐 因此,我计划在django中创建一个具有以下属性的模型:- 作者姓名 作者名称 作者图片 作者评论 关于图像部分,我有以下问题:- 将图像存储在后端数据库中是否是一种良好的做法?(据我所知,数据库用于结构化信息) 如何存储图像,使内容的缩放和管理变得非常简单 最好的方法是将图像存储在服务器的某个特定的通用文件夹中。之后,在数据库中存储一个字符串,其中包含要加载的图像的路径。这将是一种更有效的方法。简言之:不 使用

我正在尝试创建我的个人网页。因此,我需要加入推荐小组,其中包含前雇员/朋友等的推荐

因此,我计划在django中创建一个具有以下属性的模型:-

  • 作者姓名
  • 作者名称
  • 作者图片
  • 作者评论
  • 关于图像部分,我有以下问题:-

  • 将图像存储在后端数据库中是否是一种良好的做法?(据我所知,数据库用于结构化信息)

  • 如何存储图像,使内容的缩放和管理变得非常简单


  • 最好的方法是将图像存储在服务器的某个特定的通用文件夹中。之后,在数据库中存储一个字符串,其中包含要加载的图像的路径。这将是一种更有效的方法。

    简言之:不

    使用Django的内置软件,让您的Web服务器从磁盘提供文件服务


    或者,您可以将ImageField与自定义文件一起使用,例如,将文件放在Amazon S3上,并从那里提供服务(可能在前面添加类似CloudFront CDN的内容)

    不。不好,尤其是在扩展时

    当您考虑请求/响应周期中发生的事情时,您将知道python脚本会被一些模块解释。因此,如果您使用的是apache,mod_wsgi可以完成这项工作。
    通常,您不希望静态文件由同一个进程提供服务,因为静态文件是静态的,这不是很有效。在一个典型的场景中,您需要一个非常快速的web服务器,比如说nginx,它不需要“思考”就能为您的静态内容提供服务。该委托提供了一个非常高效和可扩展的设计。正如@Anentropic所说,您可以选择在CDN上承载静态媒体。

    不要在数据库中存储图像,只存储图像文件的路径。