Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中存储文件_Python_Html_Django - Fatal编程技术网

Python 如何在Django中存储文件

Python 如何在Django中存储文件,python,html,django,Python,Html,Django,如何在模型中以Django格式存储文件 嗯,我知道文件字段,但我不明白它是如何工作的问题是,我希望能够存储文件,而不是路径,因为我正在为一个项目创建一个云存储网站,并希望能够存储文件 当用户想要更改文件名时,我如何才能更改它。我将尝试简单地解释它是如何工作的,因为它将帮助您确定最佳解决方案 本地系统存储 您将路径存储在数据库中,并将字段上的存储类设置为,FileSystemStorage,这意味着django将知道如何从运行django应用程序的同一系统的硬盘上进行写入和读取。因此,基本上,您存

如何在模型中以Django格式存储文件

嗯,我知道文件字段,但我不明白它是如何工作的问题是,我希望能够存储文件,而不是路径,因为我正在为一个项目创建一个云存储网站,并希望能够存储文件


当用户想要更改文件名时,我如何才能更改它。

我将尝试简单地解释它是如何工作的,因为它将帮助您确定最佳解决方案

  • 本地系统存储
  • 您将路径存储在数据库中,并将字段上的存储类设置为,
    FileSystemStorage
    ,这意味着django将知道如何从运行django应用程序的同一系统的硬盘上进行写入和读取。因此,基本上,您存储普通文件时会引用它们在目录中的位置

  • 云存储
  • 与本地系统类似,但不是保存本地路径,而是保存uri位置,并且不是本地系统,而是通过http或自定义协议(如s3)通过网络获取文件。为了实现这一点,您需要声明一个自定义存储类,在该类中定义要从云存储上载和删除的自定义
    save
    delete
    方法

    你可以自己写:

    或使用图书馆:

  • 数据库存储

  • 如果您知道文件是文本,则可以读取它们并将文本与相关元数据一起直接保存在数据库中。如果它们是二进制的,您可以将它们存储为Blob类型-这里的风险是性能缓慢和数据库膨胀的风险。好吧,在数据库之外存储二进制文件是一种更好的做法。

    除非您打算用二进制文件将其填满,否则数据库中不适合存储文件。这就是道路。例如,我应该存储文件的路径。例如,如果我通过输入标记(type=file)获取一个文件,会发生什么情况,如果您能详细解释一下Django中的自定义存储。谢谢,我为编写自定义存储而发布的NathanThe文档链接比我能做的更好。我建议您在这些示例之后尝试并实现一个,您将开始了解它是如何工作的。