2013-04-17 4 views
1

Я ищу способ загрузки файлов с веб-страницы, построенной с использованием Django, но без с использованием форм django i.e from django import forms.Загрузка файлов в Django

Почему? Просто потому, что я не могу понять, зачем нам это нужно. Я уверен, что можно будет обрабатывать файлы, загруженные через форму, так же, как мы можем обрабатывать другие данные POST, представленные через форму.

В качестве побочного примечания, я буду признателен, если кто-нибудь сможет объяснить мне логику использования форматов джанго. Спасибо!

ответ

0

За документации: https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.FILES

Если запрос содержит загрузку файлов, request.FILES будет содержать экземпляры класса UploadedFile позволяет читать данные, которые вы получили от клиента.


Как правило, вы должны использовать Django формы, потому что они делают это проще поддерживать формы и представления, которые полагаются на них. Конечно, если ваша форма будет содержать только одно поле, это может показаться излишним вначале, но не волнуйтесь, в конечном счете, что двухстрочный интерфейс намного меньше (и, следовательно, его проще поддерживать), что пользовательская форма проверки и очистки в поле зрения никогда не будет.

Самая большая прибыль - это разделение проблем: поскольку ваша форма является отдельным классом, ее можно повторно использовать несколькими видами, ее также можно легко расширить с помощью наследования Python, и ее можно протестировать отдельно от представления.

Это работает и наоборот, сохраняя ваши взгляды легче понять, потому что логика создания и проверки всей формы лежит где-то в другом месте.

Как только вы изучите API форм, записи форм Django-way в конечном итоге станут быстрее и проще, чем обработка запроса. POST непосредственно из представления. Форматы Django обрабатывают входящие данные для вас и выполняют базовую очистку и проверку, а также принуждение типов. Без них вам придется инвестировать время в составление шаблона для очистки форм, проверки и обработки ошибок.

Django Forms также предоставляет «крючки» для подключения дополнительного кода к вашим формам при проверке и очистке данных, что позволяет вам делать лишние вещи, когда поле получает значение. Есть даже model.Form, который позволяет вам создавать форму из вашей модели, экономя вас еще больше времени.

Благодаря Django форм вы можете сосредоточиться

В то время как мы в этом, вы должны также иметь прочитанный на следующее: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/ https://docs.djangoproject.com/en/dev/topics/http/decorators/#django.views.decorators.http.require_POST

Это mustknow для того, чтобы сохранить свои формы в безопасности от основной виды атак.

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