2

我是 django 新手,一直在设计一些包含 FileFields 的基本模型。

这是我的模型的示例:

class Sample(models.Model):
   pub_date   = models.DateTimeField('Publish Date', default=datetime.now)
   upfile     = models.FileField(upload_to='samples/')

我已经通过管理员测试了文件上传,但现在我正在寻找其他解决方案来通过 REST API 提交文件。我的第一次搜索导致了活塞,但大多数示例似乎不涉及模型,仅将文件上传到网站。

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

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

提前致谢!

4

2 回答 2

8

You probably shouldn't be looking to piston for new builds anymore. It's essentially unmaintained and has been for a while now. django-tastypie and django-rest-framework are your best bets, although there's also a bunch of less fully featured frameworks cropping up.

REST framework supports standard form-encoded file uploads, see http://django-rest-framework.org/api-guide/fields.html#filefield

I'm not sure about tastypie's support for file uploads.

于 2012-12-05T13:58:22.817 回答
1

我回到了基础并决定尝试创建一个本地脚本来读取调用文件和示例模型。由于我将直接从同一服务器提交文件,因此该解决方案比使用 REST API 简单得多,它提供了比我需要的更多的灵活性。

这是我的解决方案:

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()

回想起来这非常简单,但我希望它可以帮助有同样问题的人。

随意发表评论。谢谢!

于 2012-12-05T16:42:26.293 回答