Django 간단한 도서 관리자 (6 CSV 파일 가져오기 내보내기 추가)
1. 새 "forms"만들기
항목 이름을 오른쪽 단추로 눌러서 새 패키지 "file"을 만듭니다.
패키지 이름 "file"을 오른쪽 단추로 누르고 "forms.py"를 새로 만듭니다. 코드는 다음과 같습니다.
#!usr/bin/env python
#coding: utf-8
'''
Created on 2012-7-11
@author: jingwen.wu
'''
from django import forms
class UploadFileForm(forms.Form):
title = forms.CharField(max_length=50)
file = forms.FileField()
2. 가져오기 내보내기 작업 추가
library/book/views.py 에 코드를 추가하려면 다음과 같이 하십시오.
def uploadfile(request):
if request.POST:
form = UploadFileForm(request.POST, request.FILES)
f = request.FILES['file']
line = f.readline() #
while True:
line = f.readline()
try:
line1 = line.decode('utf-8-sig')
if not line1 or line1 == '\r
' or line1 =='\r' or line1 == '
' or line1 == '': break
arg = line1.split(',')
publicationTime = arg[3].rstrip('\r
')
book = Book(name = arg[0], author = arg[2], press = arg[1], publicationTime = publicationTime)
book.save()
except:
pass
line2 = line.decode('gb2312')
if not line2 or line2 == '\r
' or line2 =='\r' or line2 == '
' or line2 == '': break
arg = line2.split(',')
publicationTime = arg[3].rstrip('\r
')
book = Book(name = arg[0], author = arg[2], press = arg[1], publicationTime = publicationTime)
book.save()
f.close()
return render_to_response('book/success.html')
else:
form = UploadFileForm()
return render_to_response('book/upload.html', {'form': form}, context_instance=RequestContext(request))
def downloadfile(request):
response = HttpResponse(mimetype='text/csv')
response['Content-Disposition'] = 'attachment; filename=book_list.csv'
writer = csv.writer(response)
writer.writerow(['name', 'author', 'press', 'publicationTime', 'reader'])
books = Book.objects.all()
for book in books:
if book.reader_id:
try :
readName = Reader.objects.get(id__iexact = book.reader_id).name
except:
readName = ''
else :
readName = ''
writer.writerow([book.name, book.author, book.press, book.publicationTime, readName])
return response
3. "urls.py"수정
library/book/urls.py의 patterns()에 다음 코드를 추가합니다.
url(r'^upload/$', 'book.views.uploadfile', name = "books_uploadfile"),
url(r'^download/$', 'book.views.downloadfile', name = "books_downloadfile"),
4. 가져오기 파일 템플릿 추가
가져오기 파일 템플릿 "book list.csv"추가
5. 가져오기 인터페이스 추가
"library/templates/book"에 "upload.html"을 추가하면 코드는 다음과 같습니다.
리콜 방법 때문"οnsubmit = "return iframe Callback(this, dialog AjaxDone)"(구체적으로 어떤 이유인지는 지금도 밝혀지지 않았지만...),성공적으로 가져온 알림 정보는 이전과 같이'views.py'에서'return HttpResponse(simplejson.dumps('statusCode': 200,'navTabId': request.POST.get('navTabtId','bookindex'),'callbackType': 200,'navTabIbId': RequestTabTabId': request.POvTabId': Request.PAvTabId''navTabId': Request.Pone': requne': requne),'message''message': usage': u'umimetype="application/json")에 프롬프트가 표시됩니다."success.html"을 통해 표시되며 효과가 똑같습니다.
"library/templates/book"에 "success.html"을 추가하면 코드는 다음과 같습니다.
{
"statusCode":"200",
"message":"\u64cd\u4f5c\u6210\u529f",
"navTabId":"bookindex",
"rel":"",
"callbackType":"closeCurrent",
"forwardUrl":"",
"confirmMsg":""
}
5. 도서 홈페이지에 가져오기 내보내기 단추 추가
"library/templates/book/basepage.html"의 "toolBar"에 다음 코드를 추가합니다.
line
CSV 파일 가져오기
CSV 파일 내보내기
6. 실행
도서 관리 메인 인터페이스
가져오기 파일 인터페이스
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.