我正在尝试将文件列表发送到我的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" }
]
}
答案 0 :(得分:3)
我认为将json数据发送到您的服务器是有道理的。现在要实际实现它,您需要服务器接受将用于发送有关文件数据的http POST
请求。
因此,服务器代码可能如下所示:
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
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()
您还可以查看urllib2
和httplib
并使用它们代替urllib
。