我正在使用 Django 创建一个 Web 服务,我希望该 Web 服务返回图像。我正在决定我的 Web 服务的基本架构。在谷歌上绊倒后我得出的结论是:
- 在将图像编码为 Base64 格式后,我应该将图像存储在数据库中。
- 当直接传输 Bases64 解码字符串时,传输图像会很容易。
但我有一个问题,如何使用 Django 模型将 base64 编码的字符串存储在数据库中?另外,如果您发现我的基本架构有任何缺陷,请指导我。
我是 Web 服务和 Django 的新手
谢谢!!
原文由 Mayank Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议
有些人说使用 DB 存储图像不是一个好主意,但事实并非如此。我的建议是以这种方式将 Django 与 AppEngine Blobstore 服务 一起使用:
首先,创建一个 Django 自定义存储(或者像 这样从别人那里挑选一个):
此自定义存储可以接收 Django 图像,将它们转换为 Base64 字符串并将它们发送到您的 AppEngine Blobstore 服务应用程序(例如通过 xmlrpc)。
然后,创建一个 Django Image 模型:
然后,您必须创建一个 AppEngine 应用程序来接收存储图像的 Django 请求,将 Base64 字符串转换为原始字符串并将它们存储在 Blob 中。例如:
提供一个 blob
关键是函数 get_serving_url 。来自谷歌文档:
最后,通过使用 AppEngine 提供图像,您可以使用调整大小和裁剪图像的强大功能(查看
get_serving_url
函数的文档),例如:希望能帮助到你。祝你好运!