— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать? У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>3136709 Двачую. Я раньше на джаве писал бэкэнд. Лет 8 назад перешел на питон. Сейчас параллельно на го немного код поддерживаю. Питон очень приятный язык, особенно с тайп хинтингом и pydantic
>>3136432 (OP) Знатоки Джанго, что это за хуйня? Делаю загрузку файла через django rest. Сваггер автогенерируется через drf-spectacular. Накидал ручку, захожу в сваггер и вижу вот такую вот ебень на 1м пикриле, фастапи мне без заебов генерил форму через которую я мог нажать на кнопочку, выбрать файл с моего компа и загрузить его через multipart-formdata, тут же какая-то ебень - просит мне строку двоичную для файла вставить
Почему так? Не, я пынямаю, что могу ПРОСТО прикрутить настройки дпи или масштабирование на дефолтное поставить, но почему разработчики вообще допускают такое мыло в 2024? Это ж не васянская программа, а оффффициальный установщик
>>3137550 ПОЧЕМУ ТАК? МНЕНИЕ? В ЧЁМ НЕПРАВ? УЗНАЛИ? СОГЛАСНЫ? БАЗА ИЛИ КРИНЖ? ТВОИ ДЕЙСТВИЯ? ОПРАВДАНИЯ? А ЧЕГО ДОБИЛСЯ ТЫ? ЕБАЛО? ОТКУДА ЭТО ПОШЛО? ПРОСТО ХОЧУ РАЗОБРАТЬСЯ А У ВАС КАК ДЕЛА? СЭЙМЫ ЕСТЬ? ПРОСТО НАПОМИНАЮ У МЕНЯ ОДНОГО ТАК? КАК ФИКСИТЬ? ПОДВОДНЫЕ? ЧТО СКАЖЕТЕ? ЧТО ДУМАЕТЕ? ЧТО ДЕЛАЕТЕ? ЧТО ДЕЛАТЬ? КАК ПЕРЕСТАТЬ? ЧТО ТЫ МОЖЕШЬ ЕЙ ДАТЬ?
>>3137597 Блять как я ору когда с фриланс бирж мне приносят код со словами "чото не работает", а там как раз эксепшены с пассами и принты вместо логов, зато за 500 рублей
Аноны я как-то думал что один дома и решил немного попитонировать. Ну открыл пайчарм и начал питонировать а оказывается батя и мамка дома были, они зашли и всё увидели. Теперь из дома выгоняют. Как быть.
>>3141222 Не спеши унывать. Регистрируешься на Instagram и OnlyCode, на первом снимаешь видео и фотки как ты типа питонируешь, но не по настоящему и оставляешь ссылки на свой OnlyCode, а на самом OnlyCode уже по настоящему питонируешь и жёстко, можешь даже с кем нибудь вместе питонировать, и выкладываешь всё это по платной подписке и за разные особые денежные подарки для подписчиков. Всё, мама и папа больше не нужны, можешь уехать в теплые страны и там питонировать сколько угодно, твои донатеры тебя будут содержать
И нет, не надо мне советовать requests, он палится антибот системой. Мне нужно отсылать именно сырой реквест, чтоб иметь полный контроль над тем, что отправляю на сервер.
>>3141222 Да, тебе теперь не сладко из-за змеи паганой. Но, согласись, что сам виноват же. Нельзя пайчарм расчехлять же так просто!! Нужно как-то скрытно быть!
Пытаюсь в какие-то петпроджекты на питоне. Щас вот написал на селениуме штуку, которая заходит на сайт, логиниться, открывает ~50 вкладок и завершается, оставляя хром. Идея в том, чтобы потом уже мануально работать с этими вкладками. Код работает, но спустя какое-то время хром виснит. Причем, я всё ещё могу окно перемещать, всё ещё могу нажать на вкладку, навести на иконку хрома в таскбаре и увидеть там, что переключения сработало, но вот само изображение в окне не поменялось, показывает старую вкладку. Драйвер хрома я явно не указываю, запускаю так
>>3144134 На днях одну хуйню делал с селениумом, и ничего не зависало, можно было работать и после завершения скрипта, правда вкладка была всего одна. Может 50 вкладок слишком много для компьютера. Или где-то надо указать что для работы твоей программы надо снять ограничение на потребление оперативной памяти. В Visual Studio при работе с языком C/C++ вроде можно в свойствах проекта указать объем выделяемой памяти под heap/stack/или как это называется я не помню я не погромист.
>>3144134 Хром почти нереально заставить работать стабильно. Всегда будет какая-то хуйня происходить, то память утекать, то зомби-процессы оставлять, то ещё что-нибудь. Единственный способ с этим бороться - это либо распараллеливать на несколько компьютеров, чтобы 1 хром запускался на одном компьютере и брал из очереди rabbitmq задание. Потом как завершается задание - хром убивать. Либо тебе нужен пиздец какой сервер, гигабайт на 8 оперативки минимум. И после того как ты свои 50 вкладок откроешь, у него память утечёт, ты его убьёшь и снова перезапустишь свои 50 вкладок.
Но у меня вагон сомнений в твоём подходе. Вряд ли хром будет эффективно работать на 50 вкладках в параллели. Ему тупо мощности проца не хватит. Либо это надо арендовать сервер гиг на 32 и въёбывать минимум по 10к рублей в месяц в этот сервер. Проще сделать 10 проходов по 5 вкладок. Сначала 5 вкладок, завершаешь парсинг, потом эти закрываешь, открываешь новые 5 вкладок и так далее.
>>3145216 Я открывал по 50 вкладок вркучную и всё не слишком стабильно работало, но вот прям таких зависаний я не видел. Тут есть какая-то разница в ресурсах при открывании всего мануально и селениумом?
И ещё вопрос - может просто заменить хром на что-то менее прожорливое? Какой-нибудь хромиум-бейсд полуголый браузер без фунционала
>>3145317 >есть какая-то разница в ресурсах при открывании всего мануально и селениумом? Естественно. Ну он же автоматизирован, там будет большая нагрузка на проц. К тому же во вкладках будут одни и те же куки. То есть ты не можешь одновременно на одном и том же сайте быть залогинен под разными именами. А у многих соцсетей ещё и защита стоит, на количество запросов с одного айпи, у того же вконтакте например.
>может просто заменить хром на что-то менее прожорливое? На обычный urllib. Если тебе не джаваскрипт не нужен. Там же просто заголовки скопировать и всё. Либо если у сайта есть api, то и скрапить ничего не придётся. А так ты просто наживаешь себе лишний геморрой на жопу.
>>3145317 Ну очевидно что когда ты запускаешь хром через селениум, там к каждому процессу хрома прикреплен вебдрайвер, который занимает память. Ещё важно что в самих вкладках открывается, всё что там грузится на сайте тоже занимает память через движок хрома и потом ещё в веб драйвере. А в хроме ещё есть свои правила управления памятью. Предположим такая ситуация что памяти не хватает и хром начинает выгружать страницы и это создает какой-то конфликт с вебдрайвером и его содержимым. Но это не точно. В целом ты просто хуйню какую-то творишь с этими 50 страницами. Если нагружаешь некую систему до предела для которого она не предназначалась то надо уже как-то и вместимостью и пропускной способностью ресурсов озаботится, памятью, процессором, сетью, вот этим всем.
Короче говоря забудь про свои 50 ссылок, пересмотри подход к задаче.
Написал скрипт, хочу сделать некое консольное приложение. Нужно какой-то простенький gui или (в идеале) открывалась консоль, чтобы можно было выбирать стрелками на клавиатуре пункт меню и при нажатии enter выполнялось некое действие или выводить другое подменю с пунктами. Куда копать, что прочитать?
>>3146681 О! Я раньше любил делать такие менюшки для своих консольных программок. В простом цикле ставишь слушателя ввода (input() или getch() потому что весь прикол в том чтобы было минимум импорта или вообще только с помощью встроенных функций) и после каждого нажатия кнопки очищаешь консоль и перерисовываешь полностью содержимое. Никаких гайдов нет, просто использую print и пространственное мышление, но конечно это бесполезное и дичайшее васянство и никому такое говно не нужно. Никто так не делает. В питоне есть встроенная библиотека для GUI и ещё десяток мощных сторонних библиотек на любой вкус. Правда, конечно, освоить их сложнее чем просто в цикле через print "рисовать".
Хочу написать простенький скрипт, чтоб выгрузить архивач на хард, с последовательным форматированием данных для датасета. Задача сильно сложная для хеллоуворлдщика?
Как питонить? Как совершить акт питонирования?! Что спитонировать? Поделка под названием десктопный клиент двача в качестве тренировки питонации норм или не?! Банально, конечно, ну и хуй с ним. Мнение? Сеймы?
>>3146897 Хуле вы тут шизите то? Хде интересные пет проекты, алгоритмы на коленке, оптимизации? Нет, будем по сотому кругу шутитьб про дрочку как школота ебанная
>>3146897 >Как питонить? Задать правильный вопрос значит найти половину ответа. Ты тут уже обосрался, потому что правильный вопрос не "как", а "зачем". Зачем ты хочешь питонировать? Чтобы бросить ненавистную работу баристой и зарабатывать 300кк в наносекунду? Если да, то плохие новости, питонирование не для тебя. Чтобы питонировать у тебя должен питон стоять на питонирование, и если у тебя питон стоит, то и вопросов "что делать" не возникает, а возникают противоположные - откуда взять время чтобы все хотелки реализовать.
Двощ, что со мной не так? Значит, дана задача: Напишите программу, которая принимает на вход словарь целых чисел и выводит на экран сумму всех значений в словаре
Что я решил попробовать: пользователь вводит сам столько значений, сколько хочет. Искал в инете, но в итоге самое простое решение нашел в.. ответах маил.ру. Затем, надо всё это дело сложить. Тоже, искал-искал, сам не помню где и как, по итогу сделал это максимально просто, хотя на всех сайтах были и функции, и ретурны, и еще что-то
В итоге, вышло вот так:
my_dict = {} punkty = int(input("Введите количество элементов в словаре: ")) for i in range(punkty): key = input("Введите ключ: ") value = int(input("Введите значение: ")) my_dict[key] = value
print(my_dict)
print (sum(my_dict.values()))
Максимально коротко и просто, так ещё и работает. Собственно, что меня волнует: ну не мог я с нулевым опытом, решая практические для вуза, как-то вот так наебать систему, кучу сайтов, и прочего. Что тут не так?
>>3147687 А ну да, действительно, я и забыл какие дегенераты заплесневелые в универах задачи составляют. Только у тебя тогда ошибка. Ведь твоя программа "принимает на вход" не только целые числа, но и вообще всё что угодно. Нужна проверка что введено целое число. Ну и ключ словаря исходя из задачи не имеет значения, значит его вводит не обязательно.
Что это за пиздец? Почему VS code меня газлайтит? В коде видим: подчеркивания нет под headers. То есть что бы не определяло подсветку, оно все видит. По ctrl+click переходит в нужный файл. При запуске видим пик2. Вот какого хуя?
Анрнчики, какая лучшая библиотека для создания сервера с целью тестирования и изучения входящего и исходящего трафика на всех уровнях от http до TCP/IP?
Раз в год захожу в питонотред, каждый раз поражаюсь тому, какие же дегенераты тут сидят. Все вопросы по языку и фреймворкам игнорируются, зато по кд идет срач о том, что нет работы и питон хуевый язык. Казалось бы, дно достигнуто. Но ботоебы и скриптикиды добрались и до сюда. Пиздец... >>3136638 > Работы в разработке на питоне нет. Вот это правильно, не надо никуда вкатываться, работы нет >>3137280 Зачем ты используешь какое-то левое говно? Вот единственная либа, которую используют в проде адекватные люди. Подключается в две строчки https://drf-yasg.readthedocs.io/en/stable/ >>3144134 Нахуя ты всвякую дрисню на селениуме пишешь? Это установка на нищету?
>>3151799 Назови файл без пробелов и английскими символами. Тут дело не в питоне, а в том, что русский язык и пробелы в файлах сделаны через ебаные костыли. Так что никогда, запомни, никогда не создавай папки с пробелами. Ну и желательно называй латиницей
>>3150769 Проблема решается добавление вот этой строчки в settings.py А вообще, ебал я рот Джанги, если б не начальство, хер бы взял новый проект на ней
Так, следующий вопрос. Решил создать файл и написать в нем несколько строк. Комп уже выключил и лежу в кровати, так что скрин не пришлю. Но было там следующее:
a = "Меня зовут анон" with open ("example1.txt", "w") as file_otkr: print (file_otkr.write (f "Попытка создания файла. {a} и я пробую разные способы работы с файлом. \nА ещё, я знаю, что 24+1= {24+1} \nС виду тут нет ничего необычного, но чтобы это увидеть, надо открыть код")
>>3152488 Если что это массив флоатов. При этом на первой пикче можно видеть что часть чисел он отображает в флоат формате, часть в инте, а часть в этом ебучем научном формате.
Джангобоги, у меня с фронта пришел список айдишников, мне надо вытянуть сущности из таблицы по этим айдишникам НО ели каких-то из сущностей нет то очевидно надо выбросить ошибку. Через что это делать?
Вариант фильтрации через id__in не подходит, т.к. он просто проигнорит несуществующие айдишники
a = "Меня зовут анон" with open ("example1.txt", "w") as file_otkr: file_otkr.write (f "Попытка создания файла. {a} и я пробую разные способы работы с файлом. \nА ещё, я знаю, что 24+1= {24+1} \nС виду тут нет ничего необычного, но чтобы это увидеть, надо открыть код") При работе без f-строк всё происходит нормально. Питон не работает с файлами, если там есть форматирование? Просто.. потому что? Или же ему нужно использовать другие виды форматирования?
>>3152732 Содомит. Пока она ишачит на кухне, я, так уж и быть, могу помочь ей с учебой
>>3152084 Джанго говно, это факт. Но магические строчки в settings.py это почти даже не проблема. Вот ОРМ у штанги это говно ебаного говна >>3152488 А ты уверен, что тебе это надо? Ну выводи с помощью формата '{0:.20f}'.format(number) будет 20 знаков после запятой показывать https://docs.python.org/3/library/string.html#formatstrings >>3152735 Нахуя ты ставишь пробелы перед скобками? Нахуя ты ставишь пробел после f? Ты ебнутый?
>>3152754 И большой текст можно внутри скобок переносить вот так. Это действительно повышает читаемость, в отличии от того, чтобы в рандомных местах ебашить пробелы
Помогите пожалуйста решить три задачки! Я вообще не понимаю, только самую базу научился типо принтов и инпутов. А тут какая-то высшая математика нахуй.
1)Пользователь должен ввести 10 чисел, необходимо собрать эти числа в список, а затем создать новый список, в котором останутся только те числа, которые являются простыми (простые числа делятся только на себя и на 1)
2) Пользователь должен ввести любое количество имён, необходимо собрать их в список, а затем запросить у пользователя букву и вывести только те имена, которы начинаются с этой буквы (для ввода произвольного количества имён можно использовать стоп-слово, по вводу которого ввод прекращается) Учтите, что букву можно ввести в любом регистре.
3) Пользователь должен ввести 20 значений температуры (одно значение - один день), необходимо собрать эти значения в список. Запросить у пользователя ещё одно значение (минимальную температуру) вывести номера тех дней, в которые температура была выше этого значения (учтите, что в списке индексация начинается с 0, а нумерацию принято проводить с 1)
>>3153123 Спасибо анонче! Первое задание правда не работает всё равно. Я начал так, но дальше, чтобы число было простым, хз как вычислить и написать это в список. Можно как-то проще, чем у тебя.
Я не знаю, что гугл сделал со своим поиском, но я не могу нагуглить как создать массив объектов известной длины. Везде используются пустые списки и добавление объектов в конец используя .append, который мне не подходит.
>>3153238 Эмм, просто берешь и пишешь [1, 2, 3, ...] еще можешь через компрехеншены сделать >>3153123 Какое же говно, господи, я не верю, что так хуево можно писать >>3152965 Тут нет высшей математики и ты ничему не научишься, если будешь на каждый пук бегать в тред и просить все сделать за теюя
>>3153187 Алхимии это не помешало на вторую версию с sql-like синтаксисом переехать. А джанга застряла в нулевых вместе с ларой остался с ее охуительными запросами вида $user = User::firstOrCreate(['name' => 'John']);
Я залетный. Начал хуячить скриптец который будет дергать апишки и обрабатывать с них инфу. Вопрос в хранить обработаное на длительное время? В первую очередь это будут датафреймы pandas, тоесть табличная хуйня. Ну и там по мелочи какой-то служебной хуйни будет, типа настроек, какие датапоинты не отвечают чтобы не долбиться туда постоянно и т.п.
Аноны, помогите! Есть функция check(), внутри которой происходят арифметические действия и возвращает она результат. Возвращаемый результат меняется раз в секунду. Есть if, в котором по моей логике, должно проверятся значение, полученное от функции, и если оно <0.50, то делать одно, в другом случае - другое соответственно. Проблема в том, что происходит только одна итерация и цикл печатает одно и то же не проверяя после этого ничего. https://pastebin.com/Wgxq9PFG
Аноны, тут для прикладных целей понадобилось выпотрошить колонку из цсв файла, я сам не кодер нихуя, давно баловался с питоном, но тут на фоне утренних новостей про успехи чатгпт решил совместить и попросить его написать мне код под мои цели. Короче в пикрилах результаты, он пиздит про close(), или он прав? Я помню раньше пугали, что обязательно надо это клоуз ебашить, или файл будет открыт, будут мемори лики и дойдешь до бсода через какое-то время.
>>3155481 close() это чисто правило хорошего тона в большинстве случаев. Если ты запускаешь эту программу разок и она у тебя не бегает по 30 дней, то можешь забить. Ось сама закроет файл за тебя
>>3155415 Зачем у тебя проверка на какую-то неизвестную переменную происходит? Зачем ты просто так функцию вызываешь? Что это нахуй? >>3155178 Напишу только про первую задачу, так как каждую из задач объяснять лень. Ну, начнем с того, что ты делаешь префикс _ у переменной просто так. Продолжим тем, что вот это говно > print("Простые числа:", *[n for n in arr if simple_num(n)], sep="\n") это просто пиздец. Тут даже непонятно с чего начать -- с того, что ты бездумно пихаешь однострочники, хотя они нахуй не нужны, или с того, что ты не в курсе про join, или с того, что ты вместо того, чтобы переместить логику проверки списка в функцию, переместил ее в вывод данных. >>3155533 > global tt, nu Ох блять...
Чтобы сделать нормально, надо переписать функцию check() этого полуджуна в полукедах. Но надо дать ему возможность раскрыть себя, следовательно, сделаны костыли.
>>3155767 >начнем с того, что ты делаешь префикс _ у переменной просто так. Соглашение с нижним подчеркиванием используют не только чтобы обозначить личное поле, но ещё и тогда, когда переменная дублирует, повторяет или похожа на существующий нейминг. _input = input(). Можно открыть любую авторитетную репу чтобы в этом убедиться, например популярный модуль requests, там всё в подобном нейминге.
>Продолжим тем, что вот это говно >однострочники, хотя они нахуй не нужны Почему же не нужны, когда нужны. Ты забыл обосновать чем перемещение этой примитивной микроскопической логики в отдельный блок лучше чем однострочник. Компрехенсоны для того и нужны, чтобы таким говном код не засирать. Твоя же "правка" не нужна ни для чего, ни для упрощения алгоритма, ни для читаемости.
Итого ты приебался к неймингу, ты утверждаешь что для одноклеточной логики нужно делать отдельные блоки не обосновывая ни чем это свое заявление. Понимаешь, если ты ещё 10 раз напишешь "пиздец" умнее от этого твои посты не станут, ты сейчас похож на джуна вчерашнего вкатуна, который узнал немножко поверхам и теперь пытается выебываться и самоутверждаться на анонимном форуме для школьников.
>>3155886 > когда переменная дублирует Да > повторяет Чем это отличается от дублирования? > похожа Нет > Ты забыл обосновать Обосновывать почему в принт не нужно пихать бизнес логику? То есть, ты на таком уровне находишься? Пиздец, лучше бы ты промолчал -- за умного сошел бы
>>3155903 >Пиздец Пиздец Пиздец Пиздец Пиздец Пиздец >бизнес логику Вкатун, проснись, ты серишь. Надеялся что ты сможешь меня позабавить и хоть как-то защитить свою позицию, но ты просто слился. Ясно.
>>3155911 Все что ты смог выдавить из себя -- это обосраться на ровном месте с рассказами о нейминге переменных и заявить о том, что так как задача небольшая, то можно говнокодить. А после струи урины тебе на лицо, ушел в игнор аргументов и начал коупить. Тебе норм так жить? По ночам в подушку не плачешь?
>>3155922 Открываю самый популярный и один из старейших модулей. >print(json.dumps(info(), sort_keys=True, indent=2))
Ой, пиздец. Почему же БИЗНЕС ЛОГИКА в принте? Пиздец что же делается? Надо срочно Гвидо написать что он говнокодер, а петушок с двача лучше знает как надо.
>>3155533 >>3155767 Ковыряю опенцв. Сравниваю картинку с шаблоном. На статичном изображении - все легко и просто, а если это видеоряд - возникают проблемы.
Есть основной цикл вайл тру - в нем происходит основная сверка с шаблоном. Если есть совпадение if max_val > .58: - вызывается функция check(), в теле которой происходит сверка текущего изображения с другим шаблоном и возвращается результат типа флоат. Если функция check() вернула, на пример, 0.45668552 if check() < .50: - напечатать одно, если вернула другое, на пример, 0.85452 - напечатать другое соответственно. Везде в if я запихнул вызов функции в надежде, что каждый раз при ее вызове цикл будет возвращаться к if check() < .50 и в зависимости от результата будет выполнятся иф или елс.
>>3156017 >Я не погромист ни разу, к слову. Оно и видно. Ты даже алгоритм не смог сочинить и написать.
Не надо постоянно вызывать функцию check(). Надо только один раз. Причём этот один раз и сравнивать с 0.5. А то ты просто так её вызываешь. В функции должен быть явный return с возвращаемым значением, а не по умолчанию.
>>3136683 И то и то от программирования довольно далеко. Школьникам нужен "Игрушечный" язык, который будет понятен и который сложно сломать. Датасаенсу нужна оболочка над быстрыми библиотеками которой можно будет их перетасовывать и которую трудно сломать
Написал телеграм бота с помощью aiogram. Пора бы загружать на сервер. Как обеспечить бесперебойную работу? Если сервер там перезагрузится, то понятно, в автозагрузку добавить файл. А если просто крашнется? Для этого есть какое-то готовое решение или придется разбираться со всей этой девопсовской хней/писать какой-то автопроверяющий скрипт?
>>3156523 > Как обеспечить бесперебойную работу? Никак, в zero downtime даже гугл не может. Если говорить о том, чтобы ну прост не было кринжа с тем, что у тебя апликуха неделю не работает из-за того, что упала, а ты ежедневно не проверяешь, то да > придется разбираться со всей этой девопсовской хней Это самый простой способ. Не уверен, но вроде бы есть сервисы, которые за тебя займутся инфрой, а тебе только в докер упаковать нужно. Затем через интерфейс кубера сможешь следить
>>3156523 Хостинговые сервера могут не перезагружаться годами. А если всё таки произойдёт, то да, автозагрузочный скрипт. Крашится у тебя ничего не должно. Если крашится, то это плохой код. Переписывай.
>>3156817 Все вот эти фастапи это просто гейтвей и валидатор для данных, там за ними еще кучу сервисов на пистоне, которые могут реста не иметь, а слушать кролик/кафку
>>3156817 Зачем вкатываться на FastAPI, если это просто очередной крудофреймворк, которых десятки? Ну подрочи его пару вечерков, чтобы в целом понять основные фишки. Хули там вкатываться? Ну swagger без yasg'ов генерится из коробки, pydantic зашит намертво и через async сделан. Все значимые особенности кончаются на этом. Используется дохуя где, просто это настолько незначительная деталь, что ее упоминают редко
>>3156938 От работы не должно быть противно, все остальное опционально. В любом случае лучше не превращать любимое занятие в работу, иначе оно перестанет быть любимым.
Бляяя просто в голосину Пытаюсь у себя решить проблему с Сериализатором Django Rest, видите ли он пишет какую-то хуйню когда складываю туда другую модель: product with this username already exists
И что бы вы думали? Судя по этому ответу Джанга автоматически блять пытается сохранить объект Product для которого использован ModelSerializer просто потому что это POST-запрос... Сцуко, кому еще нужны были пруфы, что Джанга - кусок пхпшного сблева из середины нулевых - вот пожалуйста. Не беритесь за это говно, пока вас под дулом ствола не держат
>>3156914 Кому не похуй какой интерфейс? Бэкенд про то,как жсоны переложить в базу и насрать в очередь >>3157103 Программирование 90% практики и 10% теории. Сидишь и пытаешься разобраться, чтобы код работал. Никогда не будет так, чтобы ты прочитал, сразу все понял и заебашил работающий код >>3157250 Попробуй все-таки открыть документацию прежде, чем пытаться писать код. Ты взял именно тот view, который тащит за собой автогенерацию логики круда, хотя есть куча других вариантов без этого, и теперь с горящей жопой прибежал в тред, а нужно открыть документацию и все-таки ее хотя бы начать читать
>>3157085 И конечно, стоит упомянуть, что лучший интефейс "для себя" - это консольный ввод. Для себя подразумевается, что тебе не нужно никого обучать и упрощать.
Бляяя просто в голосину Пытаюсь у себя решить проблему с Сериализатором Django Rest, видите ли он пишет какую-то хуйню когда складываю туда другую модель: product with this username already exists
И что бы вы думали? Судя по этому ответу Джанга автоматически блять пытается сохранить/проверить объект Product для которого использован ModelSerializer просто потому что это POST-запрос... Сцуко, кому еще нужны были пруфы, что Джанга - кусок пхпшного сблева из середины нулевых - вот пожалуйста. Не беритесь за это говно, пока вас под дулом ствола не держат
>>3156126 Ну вот, нарисовал блок-схему. Толку от этого не много. Программа не большая, все в голове можно удержать. >>3156132 Я с нейросетью точно не разберусь. Было бы больше свободного времени...
Вот целый код - https://pastebin.com/RqsNJEc9 Алсо, все равно ощущение, что check() вызывается один раз и на основании этого раза выдается результат. В какой-то цикл еще засовывать вызов check() надо, чтобы ежесекундно проверялось?
Только что еще с проблемой столкнулся. Мне надо будет в реальном времени отслеживать наличие совпадений с shab.png, покуда работает программа. Скажем, раз в секунду. Но это потом. Сейчас, хотя бы, надо сделать, чтобы корректно работали ифы.
>>3157329 ну вот я уже кидал в тред По России на фастапи 573 вакансии сейчас, в Москве 335, при чем 200+ из них это 3-6 лет опыта
Для джанги 611 вакансий по России и 313 по Москве из них 194 с опытом от 3-6 лет
Если ты даже годик опыта будешь накручивать у тебя все равно +- 200 вакансий будет в арсенале, при том надо учитывать, что тебе ещё не всегда будут отвечать, а если и ответят, то не все собесы ты пройдешь, если вкатун
>>3157385 Да любую e-commerce залупу сделай, магазин питсы, букинг, как анон выше советовал, или какой-нибудь таск менеджер >>3157701 Ладно, я первый и последний раз отвечу серьезно. Нахуя ты ищешь названия фреймворков? Нахуя ты ищешь их на хэдхантере с их ебейшим поиском, который при поиске по умолчанию выдает вот такие вакансии как на пикриле. Ну и да, при таком же поиске у react и angular по всей России выдает 3069 и 1132 вакухи, что казалось бы много, но даже на первой странице 2/3 вакансий это фулстак хуйня с и вакансии с названием > Разработчик операций AI, Python/React (Удаленно) для меняющих профессию на разработчика Короче, ты либо делаешь нормальные фильтры и потом ручками валидируешь всю выдачу, либо даже не пытаешься в анализ рынка таким способом
>>3157776 >с их ебейшим поиском, который при поиске по умолчанию выдает вот такие вакансии как на пикриле
Ну тогда ситуация ещё хуже, потому что это не 300 вакансий для питон бекендера, а 300 вакансий, в которых ЕСТЬ НАЗВАНИЕ фреймворка И того, настоящих вакансий для бекендера ещё меньше, разве не так?
>>3157794 > это не 300 вакансий для питон бекендера, а 300 вакансий, в которых ЕСТЬ НАЗВАНИЕ фреймворка Нет, это 300 вакансий для джуномидлов, в которых есть слово fastapi, и которые размещены на hh > ситуация ещё хуже Хуже, чем то, что у тебя в голове? Возможно так и есть, я не психиатр. Во-первых, перестань путать вакансию с позицией. Во-вторых, если какая-то вакансия закрылась, то это не означает, что осталось после это 299 из 300. Эти количество открытых вакансий в моменте. Вот, например, 259 вакансий для позиций на питониста в сбере, там такая же хуйня как и в hh с поиском, но порядок думаю понятен. При том, что там именно позиции, а не просто вакансии, как на hh. Короче, ты слишком вне контекста рынка, чтобы пытаться там какие-то данные собирать. Есть живые языки, на которых есть работа, и мертвые, на которых есть полторы вакансии. Питон язык живой, любая другая аналитика требует построения целой инфры для наблюдения за ситуацией и очень глубоко знания рынка
>>3157099 Чел ты... Как недавно вкатившийся в бэк на питухоне могу тебе сказать, что на нормально созданное резюме с 2 нарисованными годами опыта тебе каждый день ХРюши сами пишут и предлагают пообщаться. Твоя задача это только затащить тех собес.
Помогите написать функцию, чтобы она из моего словаря или списка (ну или кортеж, не важно) выдавала тоже словарь с кол-вом предметов на первую букву (каждый словарь это буква алфавита и количество предметов на эту букву). Нашел легкий метод через itertools, но нужна именно функция и с количеством. Плохо разбираюсь с функциями. Помогите, плес.
>>3158006 Вот такой простенький код надо запихнуть в функцию, чтобы в результате так же приписывалось кол-во айтемов со схожей буквой. Заранее спс.
words = ['баклажан', 'банан', 'вишня', 'киви', 'черника', 'виноград', 'арбуз']
indexed_words = {} for word in words: ---first_letter = word[0] ----if first_letter not in indexed_words: --------indexed_words[first_letter] = [] ----indexed_words[first_letter].append(word)