在mysql / django的后端数据库中保存图像是一个好习惯吗?

时间:2016-03-07 12:54:54

标签: python mysql django

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

所以我打算在django中创建一个具有以下属性的模型: -

  1. AUTHOR_NAME
  2. author_designation
  3. author_image
  4. author_comments
  5. 我在脑海中对图像部分有以下问题: -

    1. 将图像存储在后端数据库中是一种好习惯吗?(数据库是根据我所理解的结构化信息)

    2. 如何存储图像以便缩放内容并进行管理变得非常简单?

3 个答案:

答案 0 :(得分:2)

简而言之:不。

使用内置ImageField的Django,并让您的网络服务器从磁盘提供文件。

或者,您可以将ImageField与storage backend等自定义django-storages一起使用,然后将文件放在例如{{3}}上。亚马逊S3,并从那里提供服务(可能在前面添加像CloudFront CDN)

答案 1 :(得分:1)

执行此操作的最佳方法是将服务器中的图像存储在此图像的某个特定常规文件夹中。之后,在数据库中存储一个字符串,其中包含要加载的图像的路径。这将是一种更有效的方法。

答案 2 :(得分:1)

不。不好,尤其是随着它的扩展。

https://docs.djangoproject.com/en/1.9/howto/static-files/deployment/#serving-static-files-in-production

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