2016-09-11 3 views
1

이제 웹 앱을 만들고 있습니다. 이 응용 프로그램은 정리되지 않은 데이터가있는 텍스트 파일을 가져 와서 구성합니다. 나는 현재 Python3에서 Django를 사용하고있다.Django를 통해보기에서 텍스트 파일을 어떻게 업로드 할 수 있습니까?

이미 템플릿에 양식 데이터를 만들었습니다.

  • Teplates는

> <form action="/practice/kakao_reader/" method="post"enctype="multipart/form-data">{% csrf_token %} 
 
>  File: 
 
>  <input type="file" name="file"/> 
 
>  <input type="submit" value="UPLOAD" /> 
 
>  </form>

하지만 내가보기를 통해 업로드 된 파일을 얻기에 어려움이있다.

F = codecs.open (request.FILES [ '파일'I 해봤 첫번째 코드 View.py

DEF kakao_reader (요청)

  • 이었다 , 인코딩 = "UTF-8")

    데이터 = f.read()

그리고 잘못된 파일 : InMemoryUploadedFile :이 오류가 발생합니다.

특정 오류

환경 :

신청 방법 : POST 요청 URL : http://localhost:8000/practice/kakao_reader/

장고 버전 : 1.10 파이썬 버전 : 3.5.2 설치된 응용 프로그램 : [ '장고 .contrib.admin ','django.contrib.auth ', 'django.contrib.contenttypes ','django.contrib.sessions ', 'django.contrib.messages ','django.contrib.staticfiles ', 01 23,516,'선거', '실천'] 설치된 미들웨어 : [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', ' django.middleware.csrf.CsrfViewMiddleware ' 'django.contrib.auth.middleware.AuthenticationMiddleware ' 'django.contrib.messages.middleware.MessageMiddleware ' 'django.middleware.clickjacking.XFrameOptionsMiddleware ']

추적 :

파일 "C : \ Python35 \ lib \ site-packages \ django \ core \ handlers \ exception.py"내부 (39) 응답= get_response (요청)

파일 : _get_response에서 187 응답 = self.process_exception_by_middleware "C \ 장고 \ 코어 \ 핸들러 \ base.py \ Python35 \ lib 디렉토리의 \ 사이트 - 패키지" (e, request)

파일 "C : \ Python35 \ lib \ site-packages \ django \ core \ handlers \ base.평 C " _get_response 185 응답 = wrapped_callback (요청, * callback_args, ** callback_kwargs)

파일에"= codecs.open F kakao_json 43에서 \ 장고 \ 내 사이트 \ 연습 \의 views.py " (request.FILES [ 'file'], encoding = 'utf-8')

파일 "C : \ Python35 \ Lib \ codecs.py"파일 열기 895. file = builtins.open (파일 이름, 모드, 버퍼링)

예외 유형 :/연습/kakao_reader/예외 값의 형식 오류 : 잘못된 파일 :

어떻게 해결할 수 있습니까? 고맙습니다.

답변

3

request.FILES['file']은 이미 파일 핸들러이므로 열 필요가 없습니다. request.FILES['file'].read()을 사용해주세요.

관련 문제