博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实现model中的文件上传FTP(一)
阅读量:4969 次
发布时间:2019-06-12

本文共 971 字,大约阅读时间需要 3 分钟。

由于在django的model中配置了filefield或者imagefield配置了upload_to参数只能将用户上传的文件上传到项目本地,就算重定向到项目外也只是直接读取文件系统,这样对未来的项目迁移或者资源管理都会造成很大的困扰,而且这种方式总觉得不太符合规范,所以找了一些资料将文件上传直接上传到FTP

一.django-storages

django的存储是通过一个叫做storages的类实现的,你可以看到在model的很多filed中都有storages=的参数选项,如果不设置,默认就是default_storage也就是FileSystemStorage,这个类也是继承的Storages基类

所以如果想要实现FTP存储可以自己重写一个storage,也可以去找个轮子

1.自己写,参考

2.找现成的轮子,我找到这个第三方的storages 可以实现ftp和sftp,当然还有一些其他的方式存储,我没有过多研究,这个里面都有

 

安装可以通过pip

pip install django-storages

或者其他的安装方式在github上都有写,可以参考一下,安装成功之后在python包路径里是叫storages,这里注意一下,否则容易import的时候找不到,我也踩过坑

二.models设置

from storages.backends.ftp import FTPStorage#FTPfrom storages.backends.sftpstorage import SFTPStorage#SFTPst = FTPStorage()#使用sftp可以用SFTPStorage()class Test(models.Model):    test = models.ImageField(upload_to='test', storage=st)

三.setting设置

# FTPFTP_STORAGE_LOCATION = 'ftp://user:passwd@host/path'

 

以上三步配置完后,就可以直接将model中的某个文件直接上传到FTP了,而数据库中相应的字段存储的只是一个文件路径

 

转载于:https://www.cnblogs.com/superpigeons/p/8761548.html

你可能感兴趣的文章
js排序
查看>>
Odoo:与浪潮合资研发PS Cloud之获得DHL证书以便与Odoo集成
查看>>
2017-2018-1 20155309 《信息安全系统设计基础》实验五 通信协议设计
查看>>
6.etc目录下重要文件和目录详解
查看>>
JQuery模拟四------把用到Sizzle的地方先用CSS3选择器实现
查看>>
Django 视图函数views
查看>>
Hdu 4296 building.cpp
查看>>
用ELK分析支付宝账单(二)
查看>>
异常(一)
查看>>
[Kafka] - Kafka 安装介绍
查看>>
Java中Timer的用法
查看>>
hdu 3191+hdu 1688(最短路+次短路)
查看>>
hdu 3873(有节点保护的最短路)
查看>>
多个相同结构的表的字段的修改、添加
查看>>
第k短路 算法详解(图解)与模板(A* 算法)
查看>>
Windows下IIS以FastCGI模式运行PHP
查看>>
进程锁,队列,JoinableQueue
查看>>
蓝桥杯 2015 java 决赛B组全部题目和除最后一题外的解析
查看>>
用户权限
查看>>
[C#] 简单的 Helper 封装 -- SQLiteHelper
查看>>