2016-09-11 2 views
1

Я сейчас создаю веб-приложение. Это приложение получает текстовый файл с неорганизованными данными и организует его. Я использую Django в Python3.Как я могу загрузить загруженный текстовый файл через 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>

Но у меня есть трудности в получении закачанный файл через VIEW. Первый код, который я попытался было

  • View.py

Защиту kakao_reader (запрос):

е = codecs.open (request.FILES [ 'файл' ], кодирование = 'UTF-8')

данные = f.read()

И я получаю недействительный файл: InMemoryUploadedFile: эта ошибка.

Специфическая ошибка

Окружающая среда:

Запрос Метод: POST URL запроса: http://localhost:8000/practice/kakao_reader/

Джанго Версия: 1,10 Python Версия: 3.5.2 Установленные приложения: [ 'Джанго .contrib.admin ',' django.contrib.auth ', ' django.contrib.contenttypes ',' django.contrib.sessions ', ' django.contrib.messages ',' django.contrib.staticfiles ', 'выборы', 'практика'] Установленная Middleware: [ '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']

Traceback:

Файл "C: \ Python35 \ lib \ site-packages \ django \ core \ handlers \ exception.py" во внутреннем 39. ответ = get_response (запрос)

Файл "C: \ Python35 \ Lib \ сайт-пакеты \ Джанго \ ядро ​​\ обработчики \ base.py" в _get_response 187. ответ = self.process_exception_by_middleware (e, request)

Файл «C: \ Python35 \ lib \ site-packages \ django \ core \ handlers \ base.ру»в _get_response 185. ответа = wrapped_callback (запрос, * callback_args ** callback_kwargs)

Файл "C: \ Django \ MySite \ практика \ views.py" в kakao_json 43. F = codecs.open (request.FILES ['file'], encoding = 'utf-8')

Файл «C: \ Python35 \ Lib \ codecs.py» открыт 895. file = builtins.open (имя файла, режим, буферизация)

Тип исключения: TypeError в/практики/kakao_reader/Exception Значение: недопустимый файл:

Как это исправить? Спасибо.

ответ

3

request.FILES['file'] уже является обработчиком файлов, поэтому вам не нужно его открывать. Просто используйте request.FILES['file'].read().

Смежные вопросы