No video

#48. Загрузка (upload) файлов на сервер. Классы FileField и ImageField | Уроки по Django 4

  Рет қаралды 9,829

selfedu

selfedu

Күн бұрын

Практический курс по Django: stepik.org/a/1...
Телеграм-канал Django: t.me/django_se...
Инфо-сайт: proproprogs.ru...
Создаем форму загрузки файлов на сервер. Классы полей формы FileField и ImageField фреймворка Django.
48_sitewomen.zip: github.com/sel...
Загрузка файлов: docs.djangopro...

Пікірлер: 24
@evgenyzakiev693
@evgenyzakiev693 10 ай бұрын
Спасибо, Сергей! Здоровья тебе🤝
@devidbrown8176
@devidbrown8176 7 ай бұрын
Услышав про домашнее задание, принялся фантазировать. Вот, что получилось: .... import time ..... def handle_uploaded_file(f): with open(f'uploads/{time.strftime("%d_%m_%Y_at_%Hч%Mм%Sс")}_{f.name}', 'wb+') as destination: for chunk in f.chunks(): destination.write(chunk) Я использую тут модуль time у которого есть strftime, принимающий строку, задающую формат отображения текущего времени и даты. В моем случае, при каждом сохранении, в название файла, перед f.name добавляется: день_месяц_год_at_час_минут_секунд Т.е., если сохранять не чаще, чем раз в секунду, то каждый новый файл будет с уникальным названием и не будет повторяться и перезатираться.
@igorkulibaba7287
@igorkulibaba7287 10 ай бұрын
Это просто бесценно, спасибо что делитель с нами Конечно есть много вопросов, по ньансам.
@HeyArtem
@HeyArtem 4 ай бұрын
Спасибо, все пашет! 🚜
@sergeysergey421
@sergeysergey421 10 ай бұрын
Нужно опцию добавить in memory через модуль io для хранения временных файлов в сессии пользователя. Если например у нас будет инженерная программа для расчетов, и нужно будет загрузить исходные данные
@andredru4278
@andredru4278 9 ай бұрын
Спасибо. Интересно.
@jadrezz.g
@jadrezz.g 4 ай бұрын
Хорошим вариантом уникального имени для большого потока файлов будет import time name = round(time.time() * 1000)
@_mrmark
@_mrmark 10 ай бұрын
Спасибо!
@naklikal
@naklikal 2 ай бұрын
Захотел изменить имя файла через datetime, что вполне логично. Но забыл проверить пунктуацию выводящейся из datetime инфы. Долго не мог понять что же я не так делаю. А все точка и двоеточия =)
@ibrahimoglu
@ibrahimoglu 10 ай бұрын
👍
@user-kf7xi8gc3o
@user-kf7xi8gc3o 10 ай бұрын
не получается открыть Evaluate Expression. В консоли POST запрос виден, все нормально, код 200, а в Debugger ничего не видно в режиме отладки. Что у меня не так?
@_a_lebed
@_a_lebed 9 ай бұрын
Тоже так было. Переделал все заново - заработало. Так и не понял, где была ошибка
@user-eo9kz8ru9d
@user-eo9kz8ru9d 8 ай бұрын
Тоже самое не вижу ничего. Что по итогу нужно сделать?
@HeyArtem
@HeyArtem 4 ай бұрын
И у меня так было, просто все презапустил, со страницы ушел, вернулся и все ОК!
@whoami866
@whoami866 10 ай бұрын
Сергей добрый вечер, скажите пожалуйста я человек который посмотрел все видео по django3. Какие видео мне нужно и стоит посмотреть по django4?
@selfedu_rus
@selfedu_rus 10 ай бұрын
Я бы рекомендовал посмотреть весь курс + курс на Stepik.
@whoami866
@whoami866 10 ай бұрын
@@selfedu_rus вы уверены что это не будет пустая трата времени?
@selfedu_rus
@selfedu_rus 10 ай бұрын
@@whoami866 нет, там много нового, а старое можно промотать
@ericcartman8047
@ericcartman8047 10 ай бұрын
Планируется ли курс по Kivy?
@selfedu_rus
@selfedu_rus 10 ай бұрын
пока нет
@Liz-ll3hb
@Liz-ll3hb 10 ай бұрын
А что нужно чтобы посмотреть оставшиеся 24 недоступных видео?
@selfedu_rus
@selfedu_rus 10 ай бұрын
Открываются через день. Либо приобрести курс по Django (ссылка под видео) + плюс некоторые дополнительные видео.
@HeyArtem
@HeyArtem 4 ай бұрын
Я реализовал уникальность имени файла через uuid (4 тип, он типа не использует ваш мак адрес и секретней 😃). В начале имени файла присвоил пять сиволов и дефис. Выглядеть будет примерно так 53c58-ИмяФайла.jpg. Мне не нравится так, хотел бы ИмяФайла-53c58.jpg, но, если я меняю, то у меня получается ИмяФайла.jpg-53c58. def random_5_characters_for_filename() -> str: ''' Генерирую рандомную последовательность из пяти символов. Использую UUID (универсальный уникальный идентификатор). Объект UUID-в строку-в список-срез-джойню в строку-удаляю запятые ''' return ','.join(list(str(uuid.uuid4()))[-5:]).replace(',', '') def handle_uploaded_file(f): ''' Фун-я для загрузки файла. К имени фото, в начале прикреплю пять рандомных символов ''' with open(f"uploads/{random_5_characters_for_filename()}-{f.name}", "wb+") as destination: for chunk in f.chunks(): destination.write(chunk) def about(request): '''О сайте''' if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): # 'file' - птмчт в UploadFileForm так назвал handle_uploaded_file(form.cleaned_data['file']) else: form = UploadFileForm() return render( request, 'women/about.html', {'title': 'О сайте', 'menu': menu, 'form': form} )
@mjolnik
@mjolnik 3 ай бұрын
>Мне не нравится так, хотел бы ИмяФайла-53c58.jpg, но, если я меняю, то у меня получается ИмяФайла.jpg-53c58. Можно сплитануть имя файла на непосредственно имя и расширение: file_n, file_e = f.name.split('.') f'uploads/{file_n}_{str(uuid4())[:5]}.{file_e}'
Загрузка файлов с фронтенда
18:49
Михаил Непомнящий
Рет қаралды 51 М.
Фейковый воришка 😂
00:51
КАРЕНА МАКАРЕНА
Рет қаралды 4,9 МЛН
Dad gives best memory keeper
01:00
Justin Flom
Рет қаралды 19 МЛН
This Dumbbell Is Impossible To Lift!
01:00
Stokes Twins
Рет қаралды 42 МЛН
Zombie Boy Saved My Life 💚
00:29
Alan Chikin Chow
Рет қаралды 33 МЛН
File Uploads - with Django REST Framework!
32:39
BugBytes
Рет қаралды 4 М.
Django Update Image Deletion with Signals
21:07
Very Academy
Рет қаралды 1,5 М.
Upload Images To Django - Django Wednesdays #38
14:46
Codemy.com
Рет қаралды 78 М.
Что такое TCP/IP: Объясняем на пальцах
15:38
Кто и почему убивает Фронтенд?
20:40
Миша Ларченко
Рет қаралды 22 М.
Фейковый воришка 😂
00:51
КАРЕНА МАКАРЕНА
Рет қаралды 4,9 МЛН