Тёмный

Django forms FileField - загрузка и скачивание файлов. 

Rustam Kamalov | Python
Подписаться 620
Просмотров 2,5 тыс.
50% 1

Загрузка файлов с помощью html form и обработка на стороне django.
Разбираем механизм работы form, как читать данные из request и как генерировать multipart/form-data, сохранять файлы в media директорию.
00:00 Вступление
00:44 Настройка шаблона
02:30 Пишем обработчик формы, и настраиваем форму
07:30 Читаем данные из формы
14:50 Получаем объект файла из multivaluedict
16:10 Описываем модель для записи данных в БД
21:00 Сохраняем файл в media директорию
24:00 Вывод файлов на страницу
27:35 Настройка скачивания файлов

Опубликовано:

 

19 май 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 17   
@user-nu3ne1jx8j
@user-nu3ne1jx8j 7 месяцев назад
Крутое объяснение, спасибо
@python______3.
@python______3. 9 месяцев назад
Крутой ролик! Очень помог, давно искал это 🎉🎉
@rikamalov
@rikamalov 9 месяцев назад
Отлично, Спасибо за внимание!
@veraburak8049
@veraburak8049 2 месяца назад
все отлично, лайк. продолжайте работу.
@rikamalov
@rikamalov Месяц назад
Спасибо за внимание!
@sugarcrash1898
@sugarcrash1898 7 месяцев назад
Спасибо
@ruslanzilla
@ruslanzilla 8 месяцев назад
Спасибо. Можно еще запилить видео про валидацию файла, прогресс бар + хотелось бы иметь представление, чем этот учебный пример, отличается от подхода в реальной продукционной среде где статические файлы обслуживаются веб-серверами.
@rikamalov
@rikamalov 8 месяцев назад
Добрый день! Прогресс бар можно реализовать на js повесив обработчик ивента на xhr.upload.onprogress. Валидация: можно проверять расширения, оно есть в свойствах загружаемого файла, и в content type реквеста. Валидировать само содержимое возможно только после загрузки. >>> чем этот учебный пример, отличается от подхода в реальной продукционной среде где статические файлы обслуживаются веб-серверами. не всегда, конечно же, общедоступная статика (лого/иконки/картинка к статье в блоге) лучше всего "отдавать" через nginx, а еще лучше через s3, а вот с генерируемыми файлами (файл csv импорта например) вопрос дискуссионный, может отдавать и gunicorn/uvicorn, почему бы и нет.
@max325475685
@max325475685 8 месяцев назад
Спасибо за крутой ролик! Не подскажешь, как сделать обработку файла пред тем, как пользователю дать скачать? Тип он кликает по ссылке, мы как-то обрабатываем файл в коде и потом отдаем ему.
@rikamalov
@rikamalov 8 месяцев назад
Приветствую, тут все очень просто, в джанго, перед тем как передать файл в fileresponse, после момента нахождения, до момента передачи, мы можем его менять, например если это txt файл, дописывая что он скачан таким-то пользователем.
@user-nw4nu8mf1b
@user-nw4nu8mf1b 2 месяца назад
А как сделать интернационализацию надписей "Выбрать файлы" и "Файл не выбран"? У меня шаблоны интернационализированы, я думал оно само всё сделает, а оно не делает(
@makson8757
@makson8757 2 месяца назад
интересно сделать это через aws s3 bucket)
@gutis_g
@gutis_g 2 месяца назад
а через админ панель так можно? Не создавая форму
@generalsnake6964
@generalsnake6964 3 месяца назад
Добрый день. А работает ли это асинхронно? То есть не встанет ли весь бекенд, пока один пользователь грузит большой файл?
@user-nw4nu8mf1b
@user-nw4nu8mf1b 2 месяца назад
Для этого и нужен nginx+uwsgi. На проде нельзя пользоваться встроенным сервером джанги
@makson8757
@makson8757 2 месяца назад
проблема в {{ file.text }} ValueError: The 'file' attribute has no file associated with it.
@makson8757
@makson8757 2 месяца назад
такая ошибка если использую пдф файл
Далее
KNOCKDOWN Usyk vs Fury
00:32
Просмотров 814 тыс.
Загрузка файлов с фронтенда
18:49