通过API上传Django文件
我是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提交文件的解决方案
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()
回想起来,这是难以置信的简单,但我希望它能帮助有同样问题的人
请随意评论。
谢谢谢谢你的反馈,汤姆,我会考虑你关于活塞的其他选择的建议。关于我的问题,我已经回到了基础,因为上传发生在django所在的同一台服务器上,所以我创建了一个简单的脚本来调用文件和示例模型。我将在我的帖子中详细介绍。我从tastypie切换到django rest框架的一个主要原因是上传其中的文件很容易。。。