Пікірлер
@MrSunTrope
@MrSunTrope 22 күн бұрын
Видос крутой, а почему редис работает если в композе порты не были открыты?
@cyber-paddle
@cyber-paddle 22 күн бұрын
Так порты надо указывать если нужен доступ снаружи к контейнеру, а внутри, контейнеры находятся в одной сети и прекрасно имеют доступ.
@MrSunTrope
@MrSunTrope 22 күн бұрын
@@cyber-paddle а точно, спасибо)
@antonkozel7416
@antonkozel7416 22 күн бұрын
Огромное спасибо за видео
@slavapetrov6855
@slavapetrov6855 24 күн бұрын
супер.......!!!!!!!!!!!!!!!!!!!!!!!!
@azotnik3464
@azotnik3464 Ай бұрын
Спасибо! Всё очень понятно объяснил:)
@Dmitrii-nr6ge
@Dmitrii-nr6ge Ай бұрын
Просто супер!!! Залил проект, и запустилось с первой попытки. Спасибо!
@the_huge_knight
@the_huge_knight Ай бұрын
Можно ли там запустить Docker-контейнеры? Самого Docker там нет, установить его не получается...
@cyber-paddle
@cyber-paddle Ай бұрын
Может на платных тарифах... Все же они предоставляют хостинг-платформу, а не виртуальную машину...
@user-yc2xm7pq1j
@user-yc2xm7pq1j Ай бұрын
Огромное человеческое спасибо Вам!
@cyber-paddle
@cyber-paddle Ай бұрын
Приходите еще )
@__ali__97
@__ali__97 2 ай бұрын
классное видео, много полезного узнал, единственный вопрос, как в docker-compose.yml у вас все работает без какой либо связи, нету depends_on или networks, как контейнеры общаются между собой? я если в 1 месте чтото не укажу, у меня вся планета крешится сразу... я имплементировал ваш код в свой проект, вот все указал уже до видео и лишь не указал в 1 месте depends_on или networks в новом контейнере nginx, у меня сразу весь бекенд упал... nginx: [emerg] host not found in upstream "app:8000" in /etc/nginx/conf.d/default.conf:2 ошибка говорит о том, что app:8000 в upstream не может быть запущен так как нет связи и nginx не видит этот контейнер в композе! а у вас не 1 связи и все работает магическим образом))) я все ждал конца видоса, когда вы покажете все связи, но так и не дождался и когда вы запускали проект, я уже был в ожидании креша изза связей, но он у вас запустился!!! просто бред)))
@cyber-paddle
@cyber-paddle 2 ай бұрын
использование докер композе решает многие проблеммы, а депенд он в данном случае не очень критично...
@KoandgoRu
@KoandgoRu 3 ай бұрын
Есть один нюанс, не понял логику заворачивать корутины в таски и запускать их в gather, при создании таски они автоматически запускаются сами, и достаточно просто их подождать потом, например через проход await по списку. В gather можно просто было распаковать список корутин всё бы так же работало, просто какой то overhead получился)
@Dmitry-mk2lv
@Dmitry-mk2lv 3 ай бұрын
Спасибо за видео! а можете подробнее концовку обяснить, пожалуйста, про то что делать если проект на гитхабе уже. Можете просто написать как погуглить, я разберусь) Спасибо!
@cyber-paddle
@cyber-paddle 3 ай бұрын
Походу надо записывать видео - как натянуть это на мой проект. Часто спрашивают....
@Dmitry-mk2lv
@Dmitry-mk2lv 3 ай бұрын
было бы круто), я планирую через гитхаб активности деплоить, думаю там свои ньюансы будут, может имеет смысл nginx поднимать на удаленной машине, а django и бд уже в докере?@@cyber-paddle
@royal_aver4403
@royal_aver4403 4 ай бұрын
Спасибо за урок! Мой проект с БД и дальше надо разбираться как ее подключить, но админка отображается, значит все пока идет по плану :)
@cyber-paddle
@cyber-paddle 4 ай бұрын
База подключается настройками в соответствубщей секции - куда коннектится, к какой базе, и с какими кредами. На бесплатной версии хостинга могут быть ограничения по исходящим коннектам... Если база sqlite - то ничего не надо. Это просто файлик, который лежит в проекте и джанга с ним работает из коробки
@royal_aver4403
@royal_aver4403 4 ай бұрын
Спасибо за инфу! Пока что не работает, но я в процессе чтобы заработало :)
@mateo1.1
@mateo1.1 4 ай бұрын
Очень круто. Особенно фишки в f строках. 1. Выравнивание в принте и заполнение символами {variable:=^60} 2. Выводить большие числа в удобочитаемом виде {number:_} 3. {now:%d.%m.%Y} 4. {obj!s} {obj!r} 5. Удобные принты для списков, словарей и не только {var=}:{var2=} Спасибо
@cyber-paddle
@cyber-paddle 4 ай бұрын
Стасибо за отзыв. Лайк, подписка, репост - не забываем )
@LinkstaRuViews
@LinkstaRuViews 5 ай бұрын
RuntimeError: Model class django_celery_beat.models.SolarSchedule doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS. - вот такая ошибка возникает при старте beats в Docker, при этом django_celery_beat в приложениях указан
@cyber-paddle
@cyber-paddle 5 ай бұрын
Опечатка?
@Sadyr_bayke
@Sadyr_bayke 5 ай бұрын
Здравствуйте, как указать что бы после pul_requests ci cd добавлял изменения на продакшн(хостинг)
@cyber-paddle
@cyber-paddle 5 ай бұрын
Вообще странно после PR добавлять изменения на продакшин.. При создании/обновлении RP обычно запускается Job/Action которая содержит набор тестов и показывет, что изменения прошли проверку и могут быть интегрированы в целевую ветку... Если таки надо добавлять изменения после того, как PR будет смерджен - то это событие коммит в ветку
@Sadyr_bayke
@Sadyr_bayke 5 ай бұрын
​@@cyber-paddleну вот так вот надо😂 Так что это можно будет реализовать?
@cyber-paddle
@cyber-paddle 5 ай бұрын
@@Sadyr_bayke можно конечно... Просто в экшинсах должно быть что-то типа: подключиться к прод машине, сделать туда клон репозитория в нужное место, рестартануть сервер (gunicorn...)... Это широкими мазками...
@maksimmaxmotives4271
@maksimmaxmotives4271 5 ай бұрын
Очень крутое видео, очень много полезной информации! Хотелось бы больше тестовых запусков в течение всего видео, чтобы отслеживать и понимать что к чему на каждом этапе.
@user-or9hd4nj9z
@user-or9hd4nj9z 5 ай бұрын
Спасибо, как по мне одно из разумных видео как работать в pythonanywhere, хотя Я поздно нашел это видео так как Я уже залил свой первый сайт на pythonanywhere. Но так как я учусь то попробую и ваш метод! Еще раз спасибо подписался на ваш канал и буду смотреть его, не плохо объясняете! Мало таких как, Вы, менторов много видосов просмотрел, но большинство льют из пустого в порожнее. А у тебя все отлично сказал сделал и все скомпановано!
@stonexcan
@stonexcan 6 ай бұрын
Спасибо за такое большое и понятное видео, всего вам наилучшего!
@Alsurnov
@Alsurnov 6 ай бұрын
Хороший урок. Сделай пожалуйста урок отображение БД с возможность редактирования каждой строки с помощью kivyMD.
@PLAY-xi6zn
@PLAY-xi6zn 6 ай бұрын
Я все понял с 1 раза. Автор красава
@cyber-paddle
@cyber-paddle 6 ай бұрын
)))) Там еще другие видео есть
@user-kf4td5ew2c
@user-kf4td5ew2c 7 ай бұрын
От души Бро! Не с первого раза, но всё таки завелось!
@Kryptonic.
@Kryptonic. 7 ай бұрын
Огромное спасибо! Все получилось, вот только иконка сайта не подгружается, не знаю пока с чем это связано. Я редко пишу коментарии, но тут прям спасибо
@cyber-paddle
@cyber-paddle 7 ай бұрын
Пожалуйста! Приходите еще, ставьте лайки, делайте репосты )
@TheAmadei
@TheAmadei 7 ай бұрын
ошибка в ответ на команду python manage.py collectstatic ошибка: PermissionError: [Errno 13] Permission denied:
@cyber-paddle
@cyber-paddle 7 ай бұрын
В static_toot указано место, куда у пользователя нет прав писать(за пределами папки home)
@cyber-paddle
@cyber-paddle 7 ай бұрын
В static_toot указано место, куда у пользователя нет прав писать(за пределами папки home)
@user-ph7je6hv6n
@user-ph7je6hv6n 7 ай бұрын
А есть где-то код проекта? На гитхабе, например?
@cyber-paddle
@cyber-paddle 7 ай бұрын
github.com/dvk-net/german-nouns-gender-trainer-telegram-bot
@djoniKage
@djoniKage 7 ай бұрын
Приветствую автор, у меня как почти такая же задача, куда можно написать вам? Нужна помощь (Менторство)
@cyber-paddle
@cyber-paddle 7 ай бұрын
Сюда?
@interesting7956
@interesting7956 8 ай бұрын
Как это четвертого рода не изобрели? )))
@homovespertilio
@homovespertilio 8 ай бұрын
Еще не понятно, в случае asyncio у нас реально сколько файлов загружается в один момент? все 100?
@homovespertilio
@homovespertilio 8 ай бұрын
Много непонятно Если мы возьмем отдельно asyncio, проверим, отдельно asyncfiles итп, и сравним с мультитредингом? будет ли у нас прирост х4 или будет х3.99?
@mnsmns64
@mnsmns64 8 ай бұрын
Добрый день. Автор очень помог исправить некоторые ошибки, которые не мог победить несколько дней!! Спасибо за видео
@ToTo-kn4rf
@ToTo-kn4rf 8 ай бұрын
Прекрасное видео! А если я хочу поменять код этого пустого проекта и заново все перезапустить, как правильно сделать?
@cyber-paddle
@cyber-paddle 8 ай бұрын
Подставить туда свои значения... Названия, домены, папки, пути...
@ToTo-kn4rf
@ToTo-kn4rf 8 ай бұрын
​@@cyber-paddleЯ имел ввиду вот что. Я разворачиваю по вашему гайду пустой проект на Джанго на каком-то хостинге. Дальше я хочу наполнить проект каким-то кодом внутри Джанго и перезапустить всё.
@cyber-paddle
@cyber-paddle 8 ай бұрын
@@ToTo-kn4rf ну вместо пустого проекта должен быть ваш... Приводите в сортветствие докер копоуз файл с вашим проектом. Ну и докер компоуз даун и ап...
@ToTo-kn4rf
@ToTo-kn4rf 8 ай бұрын
Благодарю
@_mrmark
@_mrmark 8 ай бұрын
1:55 Sity - Sities
@vasiliygorelov8037
@vasiliygorelov8037 8 ай бұрын
Спасибо за видео! Есть ли способ отправить по http данные с сервера на tg бота(не запросить, а отправить)? Чтобы при этом логика aiograma не разрушилась. По идее есть же система вэбхуков, поэтому можно как-нибудь подшаманить(если предположим, что у aiograma нет встроенной безопасности)?
@cyber-paddle
@cyber-paddle 8 ай бұрын
Так с ходу не подскажу, но aiogram - обертка для телеграмм API, а это значит, что запрус можно пульнуть прям туда...
@ryangosling4920
@ryangosling4920 8 ай бұрын
Спасибо огромное! Весь день пытался залить сайт на хост, уже все перепробовал, готов был покупать подписку и наткнулся на вас! Ещё раз спасибо, лайк и подписка)
@cyber-paddle
@cyber-paddle 8 ай бұрын
Репост забыли
@rushanusmanov4850
@rushanusmanov4850 8 ай бұрын
появилась ошибка: unable to prepare context: path "./webapp" not found, не могу понять как исправить
@cyber-paddle
@cyber-paddle 8 ай бұрын
,/webapp - относительный путь (относительно текущей папки). Может дело в этом?
@glamb_is_learning
@glamb_is_learning 8 ай бұрын
была бы разница? если вместо создание задач и использования gather, написать цикл который просто делает await download_a_cat(...)
@glamb_is_learning
@glamb_is_learning 8 ай бұрын
сам отвечаю если использовать await download_a_cat(session, cat), то не будет параллельности скачивании картинок await - это дождаться и соответственно, при каждой итерации будет интерпритатор будет дожидаться скачивания картинки
@cyber-paddle
@cyber-paddle 8 ай бұрын
gather закинет все таски в эвеетлуп и они начнуть выполняться "одновременно". For будет выполнять из последовательно и даже если там await (отпустить контроль и дать возмодность поработать кому-то еще), этого кого-то еще еще нет. Он появится на следующей итерации цикла...
@cyber-paddle
@cyber-paddle 8 ай бұрын
Ну и лайк, подписка, репост...
@glamb_is_learning
@glamb_is_learning 8 ай бұрын
@@cyber-paddleспасибо, готово.
@user-dx6wv1un8d
@user-dx6wv1un8d 8 ай бұрын
Полезное видео, спасибо!! Подскажите пожалуйста, как можно реализовать обновление записи через UpdateView, для связанных моделей, что бы при нажатии на кнопку выводилась форма с заполненными полями из двух форм, и при изменении сохранялась в обе модели?
@cyber-paddle
@cyber-paddle 8 ай бұрын
UpdateView предназдначена для апдейта 1го объекта(по умолчанию). Придется создать форму, в которой есть все поля. Провалидировать ее и после этого переписать метод save, чтобы он сохранял в 2 модели. К тому же, надо знать в какие объекты (2 шт) сохранять... Придется почти все переписать..
@user-dx6wv1un8d
@user-dx6wv1un8d 8 ай бұрын
Спасибо за быстрый ответ. @@cyber-paddle
@backendev
@backendev 9 ай бұрын
thanks bro for foydali information
@cyber-paddle
@cyber-paddle 9 ай бұрын
Always welcome
@dodokwak
@dodokwak 9 ай бұрын
Спасибо. А у вас есть опыт работы с package export-import ? Если да, то немогли бы вы сделать небольшой обзор о нём?
@markostr
@markostr 9 ай бұрын
огромное спасибо за промощь !!!
@Hande_hoch
@Hande_hoch 9 ай бұрын
51:14 у кого бот отвечает всё время Nein, тут надо сделать вместо if answer == data.get(answer), if answer == data.get('answer'), т.е. взять в кавычки
@cyber-paddle
@cyber-paddle 9 ай бұрын
Можете пулреквест сделать...
@Hande_hoch
@Hande_hoch 9 ай бұрын
я не нашел ссылку на репу. И в гитхабе по поиску тоже не нашел@@cyber-paddle
@user-zv7ty3jv5q
@user-zv7ty3jv5q 10 ай бұрын
Большое спасибо за труд! Желаю вам прироста подписчиков, очень удивлён такому малому количеству просмотров. Всё доходчиво и понятно!
@Exzemoc
@Exzemoc 11 ай бұрын
Огромное спасибо, все получилось!!!!
@user-uf7mv2dh2i
@user-uf7mv2dh2i 11 ай бұрын
Какой адрес вбивать в браузере у меня xampp server? Я кинул home папку xampp, что дальше делать? Игра запускается в двух вкладках, но пишет что Info: error, а дальше ничего не делает.
@cyber-paddle
@cyber-paddle 11 ай бұрын
Это про ПХП?
@user-uf7mv2dh2i
@user-uf7mv2dh2i 11 ай бұрын
@@cyber-paddle -нет!
@oybekyuldashov8269
@oybekyuldashov8269 Жыл бұрын
spasibo bolshoe vam
@oybekyuldashov8269
@oybekyuldashov8269 Жыл бұрын
🔥🔥🔥🔥
@eyeseyeseyes3555
@eyeseyeseyes3555 Жыл бұрын
Спасибо, затупил я конечно кое-где на полтора часа, но-таки разобрался. Один из лучший гайдов по деплою приложения!!! Отдельная благодарность за подключение ssl. Если вдруг у кого-то будет ругаться sertbot с таком ошибкой: Certbot failed to authenticate some domains (authenticator: webroot), проверьте, что к вашему домену подключен только 1 Ip адрес, и это IP адрес вашего VPS(если используете VPS), так называемые А-записи домена. У меня была проблема с этим. У beget например по умолчанию есть уже подключение одного Ip в А-запись домена, пришлось удалить его и только тогда заработало.
@user-sp2pc5sg3z
@user-sp2pc5sg3z 3 ай бұрын
подскажи пожалуйста, как получить этот сертификат. ЯЯ так же beget использую
@bulik1384
@bulik1384 Жыл бұрын
столкнулся с проблемой, что приложение не реагирует на изменение файлов css. После изменения файла жму save и делаю перезапуск приложения. Что может быть не так?
@cyber-paddle
@cyber-paddle Жыл бұрын
Collect static каждый раз
@cheloveg500
@cheloveg500 10 ай бұрын
тоже самое, решили проблему?
@cyber-paddle
@cyber-paddle 10 ай бұрын
@@cheloveg500 collect static и проверить, что переносит статикив правильное место
@1978rembo
@1978rembo Жыл бұрын
Здравствуйте. Какой хостинг посоветуете (дешевий) для Джанго
@cyber-paddle
@cyber-paddle Жыл бұрын
contabo.com/en/vps/ вот этот как-то юзал...
@user-zh8ze4iw2n
@user-zh8ze4iw2n Жыл бұрын
И, кстати, в методе show_all() ничего не надо придумывать и переписывать, т.к. автор указал в search_by_name конструкция %name% , то можно просто указать пустую строку вот так - for contact in search_by_phone(''): и все работает.
@user-zh8ze4iw2n
@user-zh8ze4iw2n Жыл бұрын
В конце видео - несуразица. Автор говорит удаление телефона, пишет функцию delete_phone, а удаляет сам Контакт!!! По ходу просмотра я еще думал, а как автор будет выбирать телефон к удалению, ведь их несколько, а автор просто грохнул самого Контакта и даже не поинтересовался, что стало с телефонами. А на самом деле - телефоны повисли в БД без контакта, т.е. стали мусором. Если бы автор указал в relationship хотя бы cascade=merge то и телефоны удалились бы. А так получилась ложка дегтя в бочку меда. С user_id можно не заморачиваться, если справочник вести правильно и не допускать дубликатов контактов (а это можно прямо указать unicue=True в свойствах поля name у User. В таком случае, можно в KV-файле указать app.delete_phone(root.text, root.secondary_text), передавая таким образом Имя (уникальное) и строку с телефонами. А дальше уже найти по полному соответствию filter(nane = name) и получить user_id, который, уже реально нужен для удаления именно телефона. Только его надо как-то еще и выбрать из списка телефонов, полученным вторым параметром. Вот этого и не хватает в этом хорошем видео. Кроме того в delete_phone , по хорошему, надо проверять кол-во телефонов у контакта, если телефон 1, то можно и контакта удалить вместе с телефоном, а вот если телефонов больше 1, то надо именно телефон удалить по user_id и phone, а самого клиента не трогать. Соответственно в этом случае, для обновления информации на экране надо просто переписать свойство secondary_text. Кроме того, мне кажется, что выбор автором библиотеки Alchemy приведет к увеличению размера apk-файла, так, что если кто-то смотрел, как и я, для мобильной разработки, то рекомендую использовать именно "сырые" запросы через библиотеку sqlite3. имхо, dpk-файл поменьше будет.
@cyber-paddle
@cyber-paddle Жыл бұрын
Я - художник, я так вижу!
@user-qp6oj4yu4j
@user-qp6oj4yu4j Жыл бұрын
Добрый день. Благодарю за ролик. Пробовал делать все за вами. Но в итоге получаю всегда ответ бота Nein. В чем может быть ошибка. Посоветуйте пожалуйста что делать
@cyber-paddle
@cyber-paddle Жыл бұрын
Спасибо за отзыв, ролик уже давно в сети, возможно API поменялся ...