5

我正在尝试将文件列表发送到我的 Django 网站。每组传输以下信息:

  • 文件名,
  • 文件大小,
  • 文件位置,
  • 文件类型

现在,假设我有 100 组这样的数据,我想将它发送到我的 Django 网站,我应该使用什么最好的方法?

PS:我正在考虑使用 JSON,然后将该 JSON 数据发布到我的 Django URL。然后数据可能如下所示:

{
  "files": [
    { "filename":"Movie1" , "filesize":"702", "filelocation":"C:/", "filetype":"avi" }, 
    { "filename":"Movie2" , "filesize":"800", "filelocation":"C:/", "filetype":"avi" }, 
    { "filename":"Movie3" , "filesize":"900", "filelocation":"C:/", "filetype":"avi" }
  ]
}
4

1 回答 1

3

我认为将 json 数据发送到您的服务器是有意义的。现在要实际实现它,您需要您的服务器接受POST您将用来发送有关文件的数据的 http 请求。

因此,服务器代码可能如下所示:

网址.py:

import myapp
#  ...
urlpatterns = patterns('', url(r'^json/$',myapp.serve_json), #http://<site_url>/json/ will accept your post requests, myapp is the app containing view functions
                         #add other urls
                      )
#other code

视图.py

import json
def serve_json(request):
    if request.method == 'POST':
        if 'files' in request.POST:
            file_list = json.loads(request.POST['files'])

            for file in file_list:
                #do something with each file dictionary in file_list
                #...
            return HttpResponse("Sample message") #You may return a message 
    raise Http404

现在在你的桌面应用程序中,一旦你有了文件字典的列表,你可以这样做:

import urllib,json
data = urllib.urlencode({'files':json.dumps(file_dict)}) #file_dict has the list of stats about the files
response = urllib.urlopen('http://example.com/json/', data)
print response.read()

您也可以查看urllib2httplib使用它们来代替urllib.

于 2012-12-16T06:56:28.817 回答