首页>>后端>>Python->django如何保存文件(2023年最新解答)

django如何保存文件(2023年最新解答)

时间:2023-12-15 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关django如何保存文件的相关内容,希望对大家有所帮助,一起来看看吧。

django怎么保存二进制字节码到sqlite3

django本身没有这样的Field。django的FileField只存储了文件名,实际文件存储在media目录里,这本来就是一种比较好的方式。如果你一定要在数据库中直接存储二进制数据,建议自定义一个FileField,修改掉里面的storage模型,直接将上传的二进制文件转换为字符串,通过文本的形式保存在数据库中。当然最好的方式在我看来,就是专门定义一个model,这个model定义一个TextField,定义一个自定义的FileField,定义一个OneToOneField,将FileField的storage自定义,修改掉storage里的_save()方法,让文件保存时之返回文件名,而文件内容却通过文本的形式存储在TextField,取数据的时候再进行一次逆操作。

Django 静态文件与动态文件

编辑 settings:

MEDIA_ROOT 和 MEDIA_URL 代表的是用户上传后的文件保存的地方。可以理解为存放可变文件的文件夹。

这两个参数有什么用处呢?

在 Django 的 FileField 和 ImageField 这样的 Model 类中,有 upload_to 参数可选。当 upload_to 设置相关的地址后,如例子:

文件上传后将自动保存到: os.path.join(MEDIA_ROOT, upload_to) ,在本例中就是: /static/uploads/test_pictures

而 MEDIA_URL ,则代表用户可以通过怎样的 URL 来访问这些上传后的文件资源。

在本例子中,本机地址是: , MEDIA_URL 设置为 /static/uploads/

那么通过: 文件名 就可以访问相关的上传图片或者其他文件。

STATIC_ROOT 和 STATIC_URL 则是网站中,用于网站放置的静态图片、CSS、JS 等文件的保存地址。可以理解为,保存网站运行中不会再变文件的文件夹(即不会删除或者新增)

STATIC_URL ,同 MEDIA_URL 类似;设置 STATIC_URL 为 "/static/" 时候,通过: 文件名 就可以访问相关的静态文件了。

STATIC_ROOT 是一个比较特殊的文件夹。这是 Django 的开发模式和部署模式区别最大的地方。

通常我们在开发模式下,可以在我们所在的 project 下建立相应的 app, 然后每个 app 下都建立相应的 static 文件夹。在开发模式下(Debug=True),Django 将为我们自动查找这些静态文件(每个app)并在网页上显示出来。然而,在部署模式下,Django 认为这些工作交由 web 服务器来运行会更有效率。

因此,在部署时,我们需要运行一下 :

这个命令将会把每个 app 里的 static 目录下的文件 copy 到 STATIC_ROOT 这个文件夹下。

如果在部署模式下,即: (Debug=False) 访问相关网页,如: 文件名 ,将不会访问 Django下各个 App 中的 static 文件夹,而是 STATIC_ROOT 中所指定的文件夹。

为了在部署模式下正确使用,我们还需要在 urls.py 中添加以下:

这相当于告诉 Django 碰到一个 "static" 开头的链接时,该如何处理。

了解完以上之后,我们让图片在前端显示出来。

编写一个 show 视图函数,来传递动态图片:

然后编写 show.html :

如何使用Django获取从前端input表单上传过来的图片到FastDFS保存 ?..求大神

老是报错说我前端网页上传的不是一个文件 是要一个文件路径的话,那服务器还没保存之前肯定找不到啊,毕竟是前端过来的,但奇怪的是django的admin后台就可以正常上传

Django中对于上传的文件的保存方法(时间+文件名)

        这是在windows环境下,且要加入上传时间,与本来的文件名拼在一起,形成一个整个的文件名,所以,其必须将文件名放在最后,而将时间放在前面,避免与后缀名冲突,除此之外,还要使用time.time()方法,取得时间戳(格式化时间会与windows系统产生冲突),并且最好进行取整,然后再将其转化为字符串与文件名拼起来组成新的文件名,从而进行保存。实例如下:

结语:以上就是首席CTO笔记为大家整理的关于django如何保存文件的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何保存文件的相关内容别忘了在本站进行查找喔。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Python/36080.html