Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
通过API上传Django文件_Django_Django Models_Django File Upload_Django Rest Framework - Fatal编程技术网

通过API上传Django文件

通过API上传Django文件,django,django-models,django-file-upload,django-rest-framework,Django,Django Models,Django File Upload,Django Rest Framework,我是django的新手,一直在设计一些包含文件字段的基本模型 以下是我的模型的一个示例: class Sample(models.Model): pub_date = models.DateTimeField('Publish Date', default=datetime.now) upfile = models.FileField(upload_to='samples/') 我已经通过admin测试了文件上传,但现在我正在寻找其他通过restapi提交文件的解决方案

我是django的新手,一直在设计一些包含文件字段的基本模型

以下是我的模型的一个示例:

class Sample(models.Model):
   pub_date   = models.DateTimeField('Publish Date', default=datetime.now)
   upfile     = models.FileField(upload_to='samples/')
我已经通过admin测试了文件上传,但现在我正在寻找其他通过restapi提交文件的解决方案。我的第一次搜索导致活塞,但大多数例子似乎不涉及模型,只有文件上传到网站

我的目标是解析目录,例如使用os.walk,提交文件并用文件信息填充模型

也就是说,我正在寻找建议和线索,以便开始调查


提前谢谢

您可能不应该再寻找新版本的活塞了。它基本上没有维护,而且已经有一段时间了。django-tastypie和django-rest框架是您最好的选择,尽管也有一些功能不全的框架出现

REST框架支持标准表单编码文件上载,请参阅


我不确定tastypie是否支持文件上传。

我回到了基础知识,决定尝试创建一个本地脚本来读取调用文件和示例模型。因为我将直接从同一台服务器提交文件,所以这个解决方案比使用RESTAPI简单得多,RESTAPI提供了比我需要的更大的灵活性

这就是我的解决方案:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
import sys
sys.path.append('/opt/proj')
sys.path.append('/opt/proj/web')
from django import db
from django.core.files import File
from django.utils import timezone
from web.myapp.models import Sample

filesample = File(open(sys.argv[1],'rb'))
filesample.name = os.path.basename(filesample.name)
Sample(upfile=filesample, pub_date=timezone.now()).save()
回想起来,这是难以置信的简单,但我希望它能帮助有同样问题的人

请随意评论。
谢谢