Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Стал разработчиком. Денег платят в два раза больше. Все равно не хватает, потому что все тратишь на алкоголь и психотерапевта. Какая же стрессовая работа, яебал.
Анончики посоветуйте плис Желательно пошагово Какие задачи решать если можно сслыки чтобы качать скил И какие проекты писать, начиная от самого простого и сложного, чтобы вкатиться макс комфортно. И чтобы набивать портофолио, что нужно чтобы уже было написано, чтобы удивить РАБотодателя. От себя - уже знаю синтаксис, про ооп, смотрел пару курсов пробовал до конца дочитать лутца, но нет, укус битон - да, по часу всего на ютабе - вообще вот он я.
>>1804329 >Пользуетесь ли вы в процессе разработки блок-схемами? Нет. >Ну или вообще какими-нибудь визуализациями структуры проекта, моделей бд итд? Без задней мысли сразу начинаешь фигачить заготовки классов. Для начала продумываешь интерфейсы, а тела методов оставляешь пустыми с пометкой TODO.
>>1804329 Да, для себя, перед началом работы, визуализирую схему работы системы, продумываю на схеме различные варианты. Рисую модели БД в pony orm эдиторе, эту схему скриню и в документацию пихаю. Иногда просят обрисовать общую схему работы, тогда иду в Фигму и рисую общую блок-схему.
https://docs.djangoproject.com/en/3.1/ref/models/expressions/#f-expressions Почему F работает не так как в документации? Написано, что можно применить выражение к уже полученному объекту, но в итоге оно выдает ошибку, что я пытаюсь сложить инт и CombinedExpression, хотя запись в БД обновляет. Но если вместо готового объекта применить это на кверисет от фильтра через апдейт - все нормально без каких либо ошибок, я что-то не так понял?
Аноны, объясните, чяднт (пик 1). Модели пик 2. Делаю вьюху для отображения отдельной статьи, чтобы сделать ее автора кликабельным нужно получить его айди, зная статью, чет нихуя не получается пока
Аноны, есть какой-то гайд про проф. версии пучарма для джанги? А то мне говорили, что он там какой-то охуеть волшебный, дебажит темплейты, видит все референсы на всякую внутреннюю джанговскую хуйню, а я пока из разницы заметил только то, что он при стайлинге в хтмле цвета выносит влево как брейкпоинт.
>>1805098>>1805098 >Во-вторых, если a это объект типа Artclie, то тебе в твоем случае нужен article_author_id А можешь эту хуйню чуть подробнее пояснить? А то я сделал какой-то адовый костыль в итоге чтобы получить айди автора, вот, глянь на пик с темплейтом, (в authors у меня лежит Authots.objects.all()). Причем обрати внимание, внизу закоменченная строка blog.article_author.id, она тоже дает айди автора, но я не понимаю почему, ведь у меня в blog только поля статьи, и в поле с автором статьи в модели статьи нет айди, а только его имя. Бля, наверное хуево поясняю, приложу еще вьюху 2м пиком, если вдруг тебе не впадлу ответить >В-третьих, зачем тебе приставка article_ в полях? Тебе названия модели мало? Увидел у какого-то чела на ютубе (sentdex вроде, или как-то так, и показалось удобно
Кто пробовал в джангу отправлять аякс-запросы с обычного джаваскрипта без библиотек?
>Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource. (Reason: CORS request did not succeed).
Насколько я понял, тут ошибка с csrf токенами. Можно ли отключить эту хуиту?
Импортировать crsf_exempt пробовал, в settings Middleware комментировал. Ничего не выходит. Или средствами самого джанго аякс-запросы не отсылаются, и надо ещё какие-то библиотеки устанавливать?
В общем, такое дело. Есть плевая задача ради которой не хочется поднимать селери.
Что имеем: django==2 Чего не имеем: брокер сообщений
Что нужно сделать? Отправить на сервис запрос, в ходе которого также должно отправиться письмо пользователю. Времени ждать, пока отправка запросу сервису рассылки писем выполнится, - нет.
Первое что приходит в голову - завести селери, отправлять заду в нее. Но ради такой ерунды не хочется подниматься селери.
Вопрос - можно ли как-то с помощью тредов/корутин реализовать это дело, в рамках запроса?
Когда ты обращаешься к полям модели, через поле другой модели, джанга сама создает доп запрос, чтоб получить эти данные. Чтобы не слать лишние запросы, рекомендуется подтягивать их сразу, с помощью prefetch_related()
>>1805720 Блин, я только сейчас понял, т.е. article.article_author это не просто имя автора, а прям целиком автор со всеми полями, так? А я начал кучу доп. запросов всратых лепить, получать всех авторов и сравнивать имена. Спасибо, стало понятнее
Аноны, помогите с редиректом в джанге плз. Вот когда на вьюху вешаешь декоратор @login_required он тебя не просто на страничку с логином кидает, а делает юрл такого вида (пикрил). Т.е. после того, как залогинишься он тебя отправляет на страничку, с которой ты попытался залогиниться, а не на захардкоженную.
>>1805917 >Что конкретно у тебя не получается? Не понимаю что куда совать. Я если что этот анон: >>1805139 >>1804878 Вот моя вьюха и темплейт, я не понимаю что куда и как совать, чтобы заработало.
<form method="post" action="./?next={{ redirect_to }}"> вот это например куда совать вообще? По идее в форму, но где, если я дефолтную джанговскую юзаю для логина. Тяжело поверить, что нельзя сделать нормальный редирект с дефолтной формой.
<a href='/login/?next={{ request.path }}'>Login</a> вот это вообще хуй знает куда пихать, ну и главное, я не хочу бездумно копипастить, даже если оно заработает, и я так и не нашел, где бы в доках это нормально описывалось. Смотрел в доках по авторизации, по формам, еще каким-то. Может я совсем тупой, и сам не понимаю, что мне надо...
>>1805959 ну и офк уже пробовал просто <a href='/login/?next={{ request.path }}'>Login</a> подставить в сайдбар, <form method="post" action="./?next={{ redirect_to }}"> впихнуть в темплейт для логина и вьюху изменить как пикрил, хуй (это к вопросу про бездумно копипастить)
>>1805959 ><form method="post" action="./?next={{ redirect_to }}"> вот это например куда совать вообще? Скорее всего никуда. Потому как в форме логина у тебя есть скрытое поле с "next", что и есть твой redirect. ><a href='/login/?next={{ request.path }}'>Login</a> вот это вообще хуй знает куда пихать Скорее всего никуда. Потому как декоратор @login_required должен делать это за тебя. >Может я совсем тупой, и сам не понимаю, что мне надо... У тебя вполне обычная реакция. В такие моменты лучше отвлечься, чаю попить и все такое. >я не хочу бездумно копипастить Ок. Давай попробуем подумать как это все должно работать: 1. Пользователь жмёт на ссылку, запрос идёт во вьюху, где его проверяют на авторизацию. 2. Если он не авторизован, то декоратор @login_required посылает его на вьюху логина, от себя добавляя в query ?next="путь_к_предыдущей_странице" 3. Вьюха логина получает этот запрос, берет из него значение "next" пихает его в невидимое поле твоего шаблона, из шаблона делает страницу с формой и отдает пользователю. Если это так, или примерно так, то ты можешь это проверить: - когда тебя переадресует на страницу логина, то в форме должно быть то самое скрытое поле с тем самым значением "путь_к_предыдущей_странице". Надеюсь, ты знаешь как открыть соснольку разработчика в браузере.
>>1806055 >Потому как декоратор @login_required должен делать это за тебя. Этот декоратор висит только на одной вьюхе, которую я даже не скидывал, с чего ты взял, что он висит? Декоратор-то сам работает нормально, но я не хочу, чтобы только залогиненные могли лазить по сайту, декоратором я закрыл только определенные странички, например где нужно комментарии оставлять.
>>1806127 Если ты хочешь делать редиректы как это делает декоратор @login_required, ты повторяешь ту же последовательность действий, только добавление дополнительного параметра "next" и пересылку запроса другой вьюхе выполняет твой код. То есть тебе не надо добавлять в темплейтах в ссылки "?next={{ }}", ты просто во вьюхе проверяешь надо ли тебе редиректить этого пользователя на страницу логина, если надо, то используешь функцию redirect_to_login(next)
>>1806316 Нет царского пути в математику. И нет царского пути в программирование. > начиная от самого простого и сложного Вот здесь правильная мысль. > удивить РАБотодателя Делай то что ты собираешься делать в будущем. Веб-разработка? Значит делай сайты. Аналитика и бигдата? Делай это. Машоб? Делай машоб. Гуи на десктоп? Делай гуи на десктоп.
>>1806672 Опыт работы и цель убери. В проекты добавь более детальное описание и ссылки на код. Навыки разбей по категорям. К сертификатам тоже можешь добавить описание.
Дизайн у тебя в целом неплохой, но резюме слишком пустое. Даже если у тебя нет опыта работы, ты можешь добавить описание к каждому проекту и сертификату.
Кто нибудь может подсказать как из функции throw получить имя функции, которая её вызвала? Сейчас я передаю её как аргумент, но было бы проще внутри функции throw это выяснять. Питон второй если что. Вот код для примера https://ideone.com/D1Y0BT
>>1806847 Сначала изучал чистый питон, начал с укуса, потом углублялся в алгоритмы и структуры данных, смотрел препода мфти, грокаем алгоритмы, решал задачи по питону, когда получил базу пошел на степик Курсы на степике: введение в базы данных, git(имхо слишком сложный, но дает лишний сертификат), web технологии, python: основы и применение, введение в linux. После курса веб технологии остается проект на джанге - сайт с вопросами
>>1806865 Курс web технологии на степике бесплатный, после него остается проект учебный на джанге, расчитываю на то что у людей кровь не пойдет от моего кода, ибо сам ревьювить не умею
Блять, я тут уже спрашивал подобное, но все никак не пойму и приходится мне к вам возвращаться, больная тема, хочу закрыть.
Вот к примеру на сайте есть js код и только после того как ты нажмешь что-либо - подгрузится новый html контент. По любому когда ты исполняешь js код, браузер отправляет какой-нибудь get запрос на сервер, давая знать что ты что-то исполнил, и он присылает тебе контент в ответ. Как средствами одного requests мне сделать этот самый запрос, чтобы сервер подумал что я исполнил js код, и отослал мне новый хтмл? В отладчике сети браузера я не вижу нихуя никаких запросов, только информацию что я получил картинки и всякое такое.
К примеру есть браузерная игра сессионка с лоббями. После игры партия заносится в архив сайта и можно просматривать историю ходов. Разумеется там все заскриптовано и если отключить жс то вообще ничего не увидишь. И как мне без всяких селениумов заставить его прислать мне контента чтобы я спарсил внутриигровые данные определенной партии?
>>1807017 Бля, я забыл еще что чтобы партии просматривать там надо быть залогиненым, лол. Такую хуйню еще не умею делать, надеюсь это тоже без селениума можно.
Это нормально, что у меня продублированы интерпретаторы?
Когда я в VSCode тыкаю на «открыть терминал» и пишу pip install -r requirements.txt (клонировал репозиторий на компьютер), в какой из интерпретаторов устанавливаются нужные библиотеки?
Потому что в ответе пишет, что все нормально, requirements установились, но когда я пытаюсь запустить код, каких-то библиотек все равно нет
Пизда рулю Выискивал 5 часов ошибку, почему данные не сохраняются в кеше. На самом деле они сохранялись. Просто обращения происходили через словарь, где в качестве ключей использовались integer, а искали через string. Заебись. юзайте для ключей всегда только str, нахуй выебываться
В каждом проф-треде на дваче ноют новички, которые не хотят работать за опыт/портфолио, а хотели бы ещё и денег за работу получить. Написал в прошлом треде предложение о своей супер-пупер программе (которая, как мне намекнули, достаточно просто реализуется) - 0 откликов. Питонщики зажрались(
>>1807266 Если выражение слева от and равно False, то и всё выражение целиком будет равно False, поэтому питончик не проверяет выражение справа от and. Поэтому даже такое сработает: if False and похуй_что_тут_вообще: pass
>>1808157 Проблема в банально-саном PATH?! Сука. Если это так, обязательно умру оставив файл с параметрами path. И положу его себе под лопатки, когда буду в гробике.
>>1803801 (OP) Всем привет,аноны! Начну сразу с сути,решил парсить дамп википедии по этому гайду: https://www.heatonresearch.com/2017/03/03/python-basic-wikipedia-parsing . Cуть в том,что бы работать с дамопм википедии через xml.etree. Подцепило тем что довольно резво работает(Всю вики за 23 минуты проходит) Все бы ничего, да только вылезла проблема: если текст у елемента довольно большой, что часто бывает на страницах википедии, то elem.text возвращает None. Мне по сути весь текст внутри тега и не надо, мне хватит пару первых строк, но уже день не могу выудить их оттуда.Гугл что наш, что пендосский молчит по этому пвовду,так что шарящий анон, выручай.Если что,я тут сижу и отвечу на любые уточнительные вопросы.
>>1808320 >Все бы ничего, да только вылезла проблема: если текст у елемента довольно большой, что часто бывает на страницах википедии, то elem.text возвращает None. а ты уверен, что это из-за большого текста, а не из-за того, что элемент пустой? там могут быть плейсхолдеры типа <root> <tag attr="hui"/> </root> Алсо 23 минуты это пиздец долго жи. Бери индексированный архив и ебашь разбор парралельно. У меня дамп русской википедии где-то за 3 минуты сжирает прямо из архива. Правда, там процессинг очень простой.
>>1808467 Да нет,в том то и дело что там прям <text>Много букв</text>. И я убирал внутри тега текст по паре строк пока оно не начало возвращать не None. Нигде про такое не могу найти инфу.
>>1808763 хуй знает. может какая буфферизация ебет вола? попробуй замени еетрипарсер на пуллпарсер и скорми ему файл в бинарном виде типа with open('dump.xml', 'rb', buffering=0) as f: parser.feed(f.read())
Анон, подскажи по пистону и рест-фреймворку Falcon - если у меня один процесс и в контроллерах я не использую асинхронность, сугубо hello world, то можно ли сказать что контроллеры thread-safe? Грубо гря получается по одному запросу одновременно, или я где-то объебался?
Конечно пользуемся. Добавляем его в pipeline, в СБОРОЧКУ/CI, через несколько месяцев понимаем что бизнес не платит за удовлетворение этой хуиты, выпыливаем, забиваем, смеемся в лицо дяде Бобу с его методами в 10 строк.
>>1809727 В его дно галере не принято писать нормальный код. В репозиторий можно сливать любой мусор, а потом их сис. админ деплоит это руками на голое железо.
Поясните за фриланс плис. Насколько выгодно делать тг ботов и продавать их, встречаю объявы что делают, под разные нужды, есть кто делает и толкает их, насколько прибыльно?
Анончики, чего необходимо придерживаться при работе с БД, чтоб избежать sql-инъекций? Интересует конкретно sqlite. На данный момент все форматирование строк в запросах заменил на вставку подготовленных операторов через '?'
есть модель Tree class Tree(models.Model): name = CharField sort = IntegerField parent = ForeignKey('self') level = IntegerField где level - уровень вложенности (0 - самый верхний родитель)
Нужно сделать структуру типа: [{"name": '...', 'children': [{...}]}, ...] отсортировано всё будет по sort Объясните тупому, что значит получить структуру? Она в json формате должна быть что ли, тогда почему все в []скобках собрано?
Сап, питонач. Вкатываюсь ваше это ойти с данного языка. Уже неплохо ориентируюсь в Flask, сейчас прохожу курс по sql. Куда дальше грести? Что учить? В какую область податься? Сам думаю между QA, Web, и DevOps. Подскажите что лучше.
На связи опять анон, который учил джанго, у меня пеке было хуево, сейчас вернулся к занятиям, так и не разобрался с редиректом после логина, напомню, что я пытаюсь у себя проделать то, что описано тут: https://stackoverflow.com/questions/806835/django-redirect-to-previous-page-after-login , но то ли я рукожоп, то ли все изменилось, но у меня не получается.
Почему, когда я делаю вьюху как на 1м пике, у меня next в запросе оказывается пустой? как работает эта черная магия? Если сделать как у этого парня эту строчку: >redirect_to = request.REQUEST.get('next', '') то в next хранится нужный мне юрл, но сама страничка с логином не открывается, т.к. я так понял такой синтаксис для джанги уже не актуален, и нэкст надо доставать просто через request.GET[] как у меня на первом пике.
Короче я так понимаю мне надо где-то на стадии уже полученной страницы с логином нужно где-то сохранить этот кусок урла, и потом отправить его в пост запросе, и я так понял хидден в темплейте логина - плохая хуйня, какие еще есть способы?
Добрые Антоши, подскажите плес реально ли за 2-3 месяца (лучше за два все таки) подготовиться, чтобы пройти интервью во всякие крутые конторы (имеется ввиду способность решать на пайтоне алгоритмы и вот это вот все)? Питон учил лет 7 назад, но он отвалился за ненадобностью, увы. А сейчас я должен все это дико быстро вспоминать.
IDE может вывести тип если ей есть на чем основываться - или автор кода где-то использовал явный тип или информацию о типах оставил. или библиотека описана в typeshed
>>1810684 не все любят захламлять код типами многие любят как раз из-за того что он кря-тайпинг в противовес языкам, где нужно явно указывать типы и типизация для них только "засирает код"
К тому же typing это питон3, а либы писались во времена питона2 и совместимость мешает все тайпингами обвесить
>>1810688 так то это норма в кря-тайпинг языках. в этом и суть кря-тайпинга и для него тайпхинтинг по факту костыли которые противоречат самой сути кря
>>1803801 (OP) Так а с какой книги начинать, если я вообще никогда ни на чём не программировал? Везде пишут код, а куда его вводить я не понимаю, есть что-то для совсем новичков? Я просто увидел копипасту "завтра ищешь в интернете книжку dive into python" и хочу делать имиджборды, но dive into python мне слишком сложна а ещё я незнаю английский, да
>>1810709 сейчас же идешь и смотришь канал на ютубе хауди хо пайтон за час, потом джанго за час , а потом отправляешь свое резюме куда нить где платят 300к наносек , и вот ты бэкэнд деволопер 300к наносек
>>1810748 гиперскилл по пистону. если первый майлстоун первого проекта делаешь быстро — получаешь 1 месяц триала. если за этот месяц доделываешь первый проект — получаешь еще 2 месяца триала. штобы ты знал, первый прокт это что-то типа крестиков ноликов. так что 3 месяца триала изи получить. https://hyperskill.org/onboarding
>>1803801 (OP) Хочу посчитать количество строк кода в проекте. Офк пустые строки или закомментированные считаться не должны. Также желательно не считать докстринги. Как это сделать?
>>1810818 открываешь файл в редлайнс проходишься по строкам фором строку стрипишь чтобы табы и пробелы и смивол переноса строк убрать с обоих сторон и если длинна 0. или стартует с # или стартует с доксимволов то пас иначе строки+=1
>>1810257 а теперь бери django + drf, и пиши на нем свой двач(либо aiohttp - лучше, но сложнее). Дальше устраивайся джуном. Если знаешь алгосы, патерны и можешь минимально пояснить за проектирование систем - то иди в продуктовую компанию. Если не можешь - иди в небольшую галерку, чтоб через годик свалить
>>1810693 Кажется ты не понимаешь сути кря. Подумай - почему утиная типизация используется не только в диамически, но и в статически-типизированных языках(например go)
>>1810825 Красота. Только вот UnicodeDecodeError постоянно всплывает. Пиздит что байтики прочитать не может то тут, то там. Как вообще понять в каком формате файл открывать? При utf8 везде как видишь не срабатывает
>>1810846 вики "Неявная типизация, латентная типизация или утиная типизация — в ООП-языках — определение факта реализации определённого интерфейса объектом без явного указания или наследования этого интерфейса, а просто по реализации полного набора его методов"
Я выделил жирным саму суть.
А суть в том, что хоть в питоне всего лишь хинтниг (явное указание, но не наследование) это все равно ломает идею кря.
у тебя было def foo(a): a.bar() a.baz()
даже если ты всего лишь описал протокол с методом bar()
def foo(a: BarableProtocol): a.bar() a.baz()
то работать будет, но иде будет выделять baz как ошибочный. Потому что явное указание типа (контракта) ломает идею "зуб даю, этот метод там будет в момент вызова" потому что сам контракт описывает то, что должно приплыть в метод
таким образом любое указание на интерфейс объекта противоречит идее кря
>>1810874 Если не указывать, будет utf8, я не об этом На данный момент открываю файлы в бинарном формате, проблем не возникает. Вопрос лишь в том, как мне до открытия по метаданным понять, в какой кодировке файл можно открыть?
Слева расширение, справа - число строк кода. В other все что не попало в указанные расширения (за вычетом всякой ебени вроде jpeg, svg, png - это сразу фильтровалось)
>>1810693 >тайпхинтинг по факту костыли которые противоречат самой сути кря Сижу на проекте где пистоновский модуль написал при помощи тайпхинтов и паттерна Dependency Injection (все зависимости определяются явно при инициализации объекта, как правило каждый объект инициализировал лишь раз) - полет нормальный. Без тайпхинтов там можно ебануться, а так сразу очевидно что за объект мы принимаем (или что за интерфейс) и что возвращаем
>>1810921 Я тоже сверхактвно юзаю хинты. Я всего лишь напомнил что есть люди которые считают что хинты рушат саму суть динамичности и крякнутости языка
Меня в питоне подкупает скорость "хуяк хуяк и в продакшен" И для этого и юзаю
Аноны, очередной вопрос знающим, ну или теоретикам, на порассуждать. Какая схема работы подойдёт лучше, для масштабируемой системы: 1. Сервер на котором сразу все. Nginx+flask+pgbouncer+postgredql. И таким образом набор этих сервисов раскинуть по все регионам. 2. Сервер на которых веб часть(Nginx+flask) и один(под каждый регион) отдельный сервер под бд(pgbouncer+postgres).
Задача в том, что бы на каждый гео-регион поставить сервера, что бы юзеру был пинг получше.
Первый вариант проще всего доставлять и нихуя особо настраивать не надо. Но тогда больше шанс проеба при репликации мастер-мастер т.к. бд много получается. Второй вариант сложнее настраивать, т.к. каждый раз надо будет для приложения прописывать вручную конкретный адрес бд которая подходит к его региону.
Деплой идёт докер-композом. Неужели кубернетосы завозить надо?
>>1810921 Вообще писать с типами это как минимум удобно. Понятно что идет на вход функции и что она возвращает, автокомплит от IDE, меньше опечаток, так как несуществующий метод или свойство будет светить IDE.
>>1811014 Может и криворучка. Но один и тот же запрос с одним и тем же JSON из под soupUI работает, из скрипта работает, а из ебаного postman Failed to decode JSON
>>1811040 Ну и соответственно в postman body - raw - json. В curl тож эту ошибку отдает. Есть мнение, что кавычки экранировать надо - но мне не помогло.
Антоны, скажите пожалуста как загуглить какой-нибудь алгоритм, который из списка с объектами у которых есть связи на себя(parent-child) сможет построить дерево, например в питоне со словарями. Мне бы какой-нибудь хотя бы словесный алгортим, чтобы велосиед не придумывать
>>1811089 а что если в списке объекты класса fingers или объекты класса ass у которых нету не __repr__ не __str__ зачем в таком случае листу нужен такой метод? и в таком случае тданный метод в строке а не в спистке смотриться вполне логичнее уже
>>1811102 челик имеет ввиду что он хочет листу метод джойн в который передается строка который вернет строку, а не строке в его джойн передавать список
>>1811115 Лучше скажи зачем объекту метод который ему противоречит и приводит к крашу, который даже в случае положительного кейса возвращает ни как не относящееся к себе объекты? порванка
>>1811190 >там любой итератор можно склеить. >а что если в списке объекты класса fingers или объекты класса ass у которых нету не __repr__ не __str__ зачем в таком случае листу нужен такой метод?
>>1811199 любой строковой итератор мань, хватит исходить на говно, включи хоть немного серого вещества и поубавь ненависти к обществу за то что ты такой и все у тебя получится
>>1803801 (OP) Почему пикрелейтед код не вызывает редирект? Например я обращаюсь по сокращенной ссылке hui >127.0.0.1:5000/hui В бд на short_url = 'hui' возвращает original_link='2ch.hk', это все проверял.
В итоге ссылка меняется на >127.0.0.1:5000/2ch.hk А результат на пике 2
>>1811207 >ряя ебанутый вариант, который работает только со строковыми итераторами, лучше нормального варианта, который работает только со списками строк
>>1811206 Ну так а в чём суть возражения? Что не склеит нестроковые объекты? Ну выпадет эррор, и чо? А вот обязать любой итерируемый объект реализовать метод join — вот это пиздец. Особенно если мой объект генерирует нестроковые объекты, которым этот join и даром не сдался.
>>1811215 Дело не в этом. Дело в минималистичности интерфейсов. Итератор должен иметь только метод next. Если ты хочешь реализацию всего на свете прямо в стандартных типах, то тебе в руби.
>>1811220 А как же множества, кортежи, словари, ещё тысячи разных структур? Им всем тоже join надо? Как ты будешь объяснять пользователям почему list.join есть, а dict.join нет?
Поясните, смотрят ли наниматели в гитхабы вкатышей? Ну, я имею в виду ситуацию, когда ты сам явно в резюме указываешь ссылки на свои проекты. Вот я с универа (щас мне 24) пилю всякую хуйню в опенсорс, у меня зеленый гитхаб, есть немножк звездочек от одноклассников, пры в чужие репы, есть даже работающий сервис, которым пользуется минимум с десяток мимокроков. Но так как я по натуре крайне мнительная даун-аутист короче личность, то за все время учебы не было ни одной попытки куда-нибудь вкатиться хотя бы стажером, как мои одногруппники. А теперь вот приспичило, так сказатб...
Просто гадаю, как мне резюме составить: честно, как есть - култори о том, что ещё нигде не работал, но очень люблю заниматься кодированием + ссылочки с подробным описанием проектов; либо кулсторти + "добавить" годик реального опыта в рогаикопыта...
>>1810998 Не, с пингом разобрался, тут cloudflare и их балансировка в помощь. Разве у тут есть живой тренд про хайлоад?
>>1811042 Если ты про синхронизацию данных в бд то проблем не будет, будет задержка небольшая, но тут дело такое, что ты находясь в северной амуреке вряд-ли очень часто меняешь место пребывания своего и задержка в синхронизации на 10-15 секунд на тебя не повлияет. Все таки ты будешь ходить на один и тот же сервер, с высокой долей вероятности.
>>1811229 Если смотрят, то не особенно глубоко. Гитхаб очень легко подделать. Ты можешь файл в своём проекте как пример хорошего кода привести. Или заработать себе известность, и впоследствии работу, если делаешь что-то нужное и значимое.
Подскажите как прокинуть конфиг в дочерние модули? В главном файле делаю следующее: import configparser ... config_filepath = path.join(path.abspath(path.dirname(__file__)), 'settings.ini') conf = configparser.ConfigParser() conf.read(config_filepath) Всё ок, но как теперь к нему обратиться из других скриптов, которые вложены в папку?
>>1811376 Они, к слову, вызываются из этого главного файла. Отправлять переменную с каждым вызовом функции же не вариант, как и читать в каждом модуле конфиг заново (не dry).
>>1811498 Можешь и 422 отправить. Или 400 с описанием что не так. Главное чтобы ответ был 4хх и клиент понял что сам накосячил. Алсо, убил бы сука за валидацию почты. В ней единственное что должно требоваться это наличие собачки.
Подскажите, если я делаю сервис типа goo.gl, то ссылки которые нужно сокращать можно передавать просто в GET запросе после ?, типа /short?url='ccылка' или по правилам нужно делать POST запрос, а в теле запроса указывать ссылку которую нужно сократить?
>>1811631 Надо POST. 1. В случае GET все ссылки пользователей окажутся в логах сервера. 2. В случае GET можно где-нибудь запостить ссылку типа /short?url= на твой сервис и какая-нибудь генерация превьюшек нагенерит тебе сокращений для левых людей, которые и знать не знали про твой сервис. 3. В случае GET ответ может закешироваться в проксях. Конечно для сокращателя ссылок это наверное не так страшно, но придумать как это может сломать пользовательский опыт можно.
>>1810494 у меня есть опыт работы в ойти почти в 10 лет. нас тут 300 человек на мороз выкинули через layoff. работы много. у меня бывает по 30-50 звонков в день. но многие конторы требуют coding skills, хотя я больше инфраструктуру поддерживал (DevOps я). чтобы попасть в фаанг люди сидят в leetcode по полгода. вот поэтому и интересуюсь на сколько это реально за пару месяцев поднять питон с алгоритмами. ps: я нахожусь в швятой, да.
>>1811845 >чтобы попасть в фаанг люди сидят в leetcode по полгода. вот поэтому и интересуюсь на сколько это реально за пару месяцев поднять питон с алгоритмами. >ps: я нахожусь в швятой, да. Учитывая твой опыт, может хватить и нескольких месяцев. Все зависит от того, чем ты занимался. Может ты десять лет писал круды, и встанешь в ступор при попытке написать алгоритм сортировки.
>>1811860 все так. алгоритмы и питон я учил в 2013 году. все это отвалилось и забылось за ненадобностью. Спасибо, буду долбить. Другого выбора у меня нету.
На мой JSON API поступает PUT-запрос, причем в нем заполнены не все поля, а только те, что нужно обновить. Функуция - @app.route('/product/<id>', methods=['PUT']) def update_product(id): product = Product.query.get(id)
>>1812033 Забавно, что в нескольких виденных мною книгах, охватывающих основы питона, эта и несколько других особенностей специально пояснены. Вероятно, в документации тоже. Но куда там толпе экспертов-вкатышей. Хорошо хоть большая часть убежала к жабаскриптерам с их смишнявками, которые скоро рандомные хуи на фишки.нет будут знать наизусть.
>>1812052 Да, так бывает. Языку 40 лет, ебать тебя в сраку. В питоне и так слишком осторожничают, навешивая сто дополнительных контекстов на существующие кейворды, вместо введения новых.
>>1812064 На это потребовалось десять лет, причем список критических изменений весьма небольшой. И этот самый переход до сих пор не закончен. Нубы уже безальтернативно учат 3, но ровным пасанам надо знать оба.
>>1812052 >Потому что неинтуитивны, ага. оно непривычно, но очень полезно ведь может пережевать все, что может итерироваться. а итерироватся может много чего в том числе и пользовательского
в языке где in obj вместо obj.contains так то нормально
>>1812073 Причина не в этом. Есть тот же len, который опирается на дандер-методы для каждого кастомного объекта. В случае с джойном решила семантика: строковый метод - получаем строку.
Хочу писать тг ботов и вот столкнулся с декораторами. В прошлом треде анон норм пояснил так. Но, я понял, но не совсем. Понял только что такой блок экономит время и удобнее писать. Можно еще пояснить плис за дек-ы. Например как делать декоратор. Написать раз ф-ю, потом в нее заворачивать остальные, или как? Как вообще такая хуйня делается. Понял что удобно. Объявил, и пишешь только то что она должна делать, остальное где-то написано и ладно. Поясните плис. Кста сколько роликов не смотрел по дек-ы все говорят по разному и пишут. Почему это так сложна ааааа блжд.
Сап, двач. Недавно совсем начал изучать язык и возник вопрос , где можно было бы найти человека , который мог бы помочь с изучением, мог бы отвечать на мои тупые вопросы и направлять? Так сказать ментора. С одной стороны не понимаю зачем это кому то может быть нужно, кроме может быть поднятия каким то образом ЧСВ, но с другой стороны наличие старшего опытного товарища крайне ускорило бы процесс вхождения в тему. В общем, как- то криво описал, но надеюсь мой вопрос понятен.
>>1812365 зачем тебе 1 человек если есть целый тред проффессианальных кодерков 300к наносек?задовай свои ответы >который мог бы направлять направляю проверяй хауди хо пайтон за час
Сап, программисты. Тут такое дело.. хочу написать бота для Discord'a на питоне. И все бы ничего, но возникла одна проблема. Необходимо создать команду, при которой бот создает голосование (Embed с реакцией). И с этой задачей я справился. Но в силу своих умственных умений, не сумел справиться со второй задачей - рандом пик участника, который нажал на реакцию (при этом еще идет таймер на минуту, дабы все успели кликнуть). Искренне надеюсь на помощь анона. Пик рил - часть кода, где, собственно, располагается команда.
Делаю гуи программу, которая помимо тектовой информации с интернета загружает и отображает картинки. Вот только делает она это каждый раз когда надо эти картинки показать.
То есть у меня есть фильм, к нему название, дата выпуска, обложка и тд.
Как это делать кешировать, чтобы каждый раз не загружать?
>>1812850 Чисто предположение, можно записывать в некий файл все ссылки на загруженные картинки и если на сайте есть картинка с ссылкой которая уже есть, то брать картинку из папки с загруженными картинками. Так же можно создавать папку под все файлы конкретного url, если нужно загрузить новый урл, то создавать папку и туда все складировать, если папка с таким урлом уже есть, то брать файлы из нее
>>1812876 Посмотри как браузер кеширует, мне кажется это самая простая реализация, кстати, если это твой пэт проект и ты хотел бы еще кого-то пригласить к разработке, пиши tg @yellowpearl
Аноны, скажите пожалуйста, уже голова не соображает, я получаю POST запрос, декодирую его и все слеши и двоеточия превращаются в %3A%2F%2F, во что декодировать, чтобы в программе все нормально было, чтобы были слеши и двоеточия
>>1812983 reduce - это fold из функциональных языков программирования. Первым аргументом должна идти функция с двумя аргументами, которая возвращает объект того же типа что и оба аргумента.
str.fold - это метод с одним аргументом, но поскольку ты его вызываешь из класса, а не объекта, то self считается за еще один аргумент и используется по назначению. То есть str.join('a', 'b') превращается в 'a'.join('b'), и возвращает 'b' (второй аргумент). Так что твоя хуйня должна вывести последний элемент в массиве.
>>1813042 >нет Да, проебался. Если строки в массиве из одного символа, то выведет последнюю, а иначе получается то, что у тебя.
А все потому, что join в качестве аргумента ожидает список, а ты суешь ему строку. Но поскольку они оба (список и строка) iterable, то оно работает, и получается, что после каждого символа во второй строке вставляется первая строка.
То есть str.join("govno", "mocha") превращается в "govno".join("mocha"), что эквивалентно "govno".join(["m", "o", "c", "h", "a"]), и получается mgovnoogovnocgovnohgovnoa.
>>1812673 Я не понял, что ты хочешь, но у меня сразу 2 вопроса: 1.Почему таймер поставлен на 10 сек, а не на минуту? 2. Почему ты вызываешь синхронный слип в асинхронной функции, а не asyncio.sleep?
>>1803801 (OP) Как заделать авторизацию (проверку прав юзера) на серваке на aiohttp? Я как джангодаун привык что в каждом реквесте есть переменная user, с которой можно мутить что угодно, а как авторизацию имплементить в aiohttp?
>>1813107 Мое приложение принимает в пост запросе ссылку, а когда мне нужно получить тело запроса его нужно декодить, в итоге все слеши и двоеточия неправильно кодировки
Где можно прочитать про метод формат и функцию формат на простом языке? Меня напрягают конструкции вроде "{0:,.2f}".format(данные). Хочу более лаконичное форматирование.
>>1803801 (OP) Змеены, а кто-нибудь разбирался в кишках tk/tkinter? Мне нужно рендерить кнопочки-курсорчики в картинку без вывода гуя на десктоп, а пользовательский ввод получать инжектом координат, эвентов и прочего мусора. Просто результатом отображения должен быть массив пикселей, который будет потом пожат и отправлен юзеру. Там можно так сделать или все гвоздями к x11/окнам приколочено?
Может, есть какая-нибудь батарейка для такого эрзац-гуя?
Если при создании класса, создать метод-конструктор с именем __init__ этот метод будет автоматически вызываться при возникновении каждого очередного объекта соответствующего класса. Если я создам метод с другим именем, но тоже с двумя нижними подчёркиваниями в каждой стороны, этот метод будет тоже вызываться автоматом, или нет?
>>1813774 нет не будет, ели очень надо то можешь просто создать метод и вызвать его в том же ините если надо и при создании экземпляра класса он отработает,
Ест ли какая-нибудь приблуда для наглядного проектирования структур данных? Я привык сначала расписывать на бумажке все структуры, но хотелось бы автоматизации и всяких свистелок с перделками. Да ещё у меня вложенные классы, словари и всякие списки списков словарей. Нужна большая вложенность и древовидность,что не на каждую бумажку влезет.
Тружновато каждый раз это прогонять через дебаггер PyCharma - он ещё более менее показывает ту структуру, которую хотелось бы от инструмента проектирования.
Не могу понять, зачем на хх ру объявы, на должности питониста, если есть биржи фриланса. Где можно взять додика за 500 рублей. Или когда есть готовые решения на гите. Можно взять подправить и работать дальше. Если все так просто, то почему работодатель так щепетилен в плане образования макаки и прочего, знаний алгоритмов и тд и тп. Сам яп питон прост как палка, уже все написано, каждая либо задокументирована. ТАк почему так сложно найти работу, тем более, что стеки питоне - нигде не учат. Ну нашли одного, ученого, он все сделал, набрали других, обучили. И все. Нипонимаю, объясните.
>>1814006 Нет, я не зеленый очень серьезно спрашиваю. Мне на самом деле интересно почему так. Когда можно взять однгого, он обучит остальных. Питону не учат в универах, так же как бэкенду и фронтенду. Каждый работ предлагает свою стек, нет единой унификации - те что конкретно нужно знать. Заметил - знать надо вообще все. Это просто нереально.
>>1814016 Да, все по часу на ютабе. Но работодателю этого не достаточно. В требованиях пишут знания несколько яп. Также, знание всяких фреймов. Те помимо базы что ты указал, которую можно выучить на ютабе за день, нужно знать еще овердохуя всего, и либ на питоне, и других япов. И что самое интересное, на одну задачу - овердохуя либ, фреймов, решений и тд и тп. А единой унификации нету. В итоге, хз что учить, где учить. Как вообще устроиться на работку прогером. Думаю в рашке только такая трабла. В школе и в вузах учат хуйне, но кроме дс наверное.
>>1814026 >Да, все по часу на ютабе. Но работодателю этого не достаточно. Правильно что недостаточно, за час ты вообще ничего не узнаешь. Обосрешься на первой таске, так как нет опыта и практики. > Как вообще устроиться на работку прогером. Думаю в рашке только такая трабла. Да конечно, проблема в стране.
>>1814026 >Да, все по часу на ютабе Учебник по матану можно за 2 дня прочитать, по линейной алгебре ну еще 2. Ты сразу можешь в магистратуру идти, хули 5 лет терять.
>>1814190 Ну да. В итоге, ни опыта, ни работы, ничего. За 5 лет технологии шагнули вперед, и вот ты знаешь, что есть матан, высшая алгербра. И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты изучил все, без опыта. И снова И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты a = 'И появилось еще 100500 либ и еще 100500 обновилось. Ты тратишь еще 5 лет на обучение, сидя дома. Итого 10 лет, без опыта. Ты ' While True: Дальше сам уже.
>>1813787 Так же как и веса. Для каждого neighbour записываешь node, которая дала new_distance, типа предыдущая точка на пути. Потом смотришь какая предыдущая нода у D, какая предыдущая у предыдущей и т.д. https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
Первое не то, просто гуй-либа, а второе прям из пушки по воробьям.
Смотри. Я написал VNC-сервер. Увы, в протоколе нет нужных мне расширений для реализации кое-каких доп-функций, поэтому я подумал, что можно сделать так, чтобы при подведении курсора к верхнему краю экрана, из него бы ваваливалось бы окошко, которую рендерит сервер. В менюшки кнопки, комбобоксы, лейблы и вся хуйня.
VNC передает просто картинку, то есть моя задача - собрать гуевое окошко, передать либе координаты пользовательского курсора и эвенты нажатия мыши, отрендерить результат, отправить его по VNC клиенту.
>>1814239 Я тебе про это и пишу, решает навык программирования на питоне. То есть навык. Навык. Навыыыык. НАВЫК. А не книги по матану. Работодателю, любому, нужна скорость решения задачи, чтобы было быстро и качественно, исходя из этого, надо делать быстро и качественно. То что он сказал, не больше. Вот начитался ты курсов, хуйни из вузов, матана. Пришел, тебе дали реальное задание, сделать то то и то то. Нвыка нету. Хуй пойми какие либы. Как все это собрать и тд и тп. В итоге - дверь. Тем более в рашке, все доки до на ангельском. Пока прочитаешь, переведешь, въедешь. Набьеш скилл. Снова - дверь. Прочитал одно на русском. уже версия питона - 6,0. Снова - дверь. Я понимаю дрочить питон, и работу на нем со школы или вуза. А не так, вместе с бейсиком или паскалем. То есть учить сразу, решать задачи, которые нужны в реальном времени. Такого на сегодняшшний день - нигде нету, ни в одном вузе и ни в одной школе. Нет унификации, единого требования, все решается через множество япов. Алгов и тд и тп. В итоге, хуй вообще пойми что делать. Я еще понимаю, в конторе работает друг. ХОтя бы подскаже куда копать. А так пришел, дали тз, и ушел.
>>1814381 Так и задачи у всех разные. Подключиться к БД или запилить pool connection это навык на питоне? А создать robust pool connection? А определить где хранить промежуточные данные в SQL или NoSQL? Хуй знает. Ты сейчас говоришь про minimum viable project, который потом рефакторится и развивается.
Алсо, я так и работал. Дали ТЗ и предложили на выбор Java или Python. Легаси был на Java, были утечки памяти, в итоге все к хуям переписал на питухоне, потому что скорость разработки выше. Рефакторил после смены ТЗ и версий API.
>>1814386 Я тащемто про обучение. Выше уже писали, что на каждый чих - уже готово решение, мб только литл разница и все. Те именно для этой разницы и нужны челики дяде. Чтобы править. А с нуля - уже тоже есть решения. Так вот. Почему бы в вузах - школах, уже не готовить птонистов. Чтобы дрочить что нужно на работе там, нарабатывать скил - чтобы быстро и качественно. А то на выходе - выучил матан, физику, химию, бейсик. И все. И нихуя. Я например, хочу вкатиться, но меня не пригалашают. Мб потому что образование не профильное. А мб боятся что я тупо зафейлю. Я например, тоже боюсь что то делать с нуля. Дадаут тз если, сразу полезу в гугл, ютаб. Это потому, что в реальной жизни все по другому чем у лутца.
>>1814395 А почему Java не учить? В МФТИ есть питонисты, тащемта. Django например тупой комбайн AIO и примеров бэка на на нем овердохуя. Какие готовые решения есть? Есть несколько систем, надо сделать адаптер, чтобы они могли общаться. Пишешь на питухоне такой адаптер. В одной системе запросы по SOAP, в другой REST. Нужно хранить логи и промежуточные данные. Вот тебе реальная задача. Вот реальная задача.
>>1814400 блжд, мск. в моем мухосранске - нету такого, даже явы лол. Я про это и говорю, что дсам повезло, их могут научить, тянуть. А меня - никто не тянет, и друзей в этой сфере нету. И все вузы - еще и платные. Вот я сам и ебусь. Плюс - я не так охуенно знаю англ, на уровне со влоарем. Мониторю хх ру, там требования, ебал я в рот. Очень много надо знать, опыт, и все с нуля ебать. Этому лутц меня не учил.
>>1814395 > по другому чем у лутца лутц это не питон это просто книжка по его синтаксису, хотя я более чем уверен что ты и половины ее не осилил >готовить питонистов обилие инфоциган явно показывает, что питонистов и так готовят >меня не пригалашают с таким отношением тебя даже на час просмотра зарплаты програмиста на ютубе не позовут
>>1814417 Ну лутц то про програмирование, а тебе нужна работа такая чтобы по праздникам можно было куриный доширак купить комуналку платить и на средней дешовости интернет чтобы позволял на дваче срать
>>1814410 ты просто сыкливый. Я пришел считай нулевый с Java Core и начальным питухоном. В итоге все на месте освоил, потому что например Лутц не учит как работать с RabbitMQ или как пользоваться ORM и нужна ли она или прямые запросы, лол. Специальность мат методы в экономике, но я все нахуй растерял, перекатился в программирование в 29, короче 2 года только. Никто не тянул, пиздил сначала код с SO, спрашивал там, потом начал гуглить, смотреть кто и как реализовывал какие-то задачи, потом тупо читал руководства по библиотеками, теперь еще и issues на github. А хули делать? IT оно такое, иногда и без наставников ебашишь.
>>1814422 > а тебе нужна работа такая > ты не должне жить > ты унтерменш > ты не человек > ты конченный скот > потому что я белый человек и так решил, потому что закончил мфти. А ты - нет. Я гитлер на яве, а ты - мразь на питухоне от инфоциган, на котором ездят луноходы на марсе, пашет инста и ютуб, и еще куча всякой хуеты вплоть до этой борды.
>>1814427 >Лутц не учит как работать с RabbitMQ бля люто плюсую ну че ему сложно чтоле пидорасу старому а заодно и монге пусть научит и джаве скрипту ну и скл за одно куда же без него , вот же пидорас ленивый не учит нихуя
>>1814432 И докеру, и новому синтаксису, и новому форматированию, и рыночным отношениям, и как искать работу, и как идти нахуй, как в рашке устроится прогером, как в мухосранске найти работу на питухоне, как знать все и сразу, как написать твитер с нуля, и торнадо, и фласк, и .... и ... и вообще все и сразу. Вот сука то.
>>1814453 да че с ней че с ней это че с лутцом че ему трудно научить чтоли анонов желающих работать и чтоб работа была сделана и опыта еще дать и профильное образование чтоб на собеседования звали? >Надо валить. Кого?
>>1814026 >Но работодателю этого не достаточно. скажи ему этому обэмэ работадателю что ты квалифицированный специолист, у тебя такие мощные проэкты как просмтр хауди хо пайтон за час и джанго за час, и что он полный дурак раз ему этого недостаточно
Профит в том, что источником изображения для VNC является не ось, а видеозахват. То есть у меня нет ни X11 на стороне сервера. У меня там кроме картинки из устройства вообще ничего нет.
Я сделал байду, которая изображает из себя недо-IPMI. Мне надо в VNC, в котором рисуется BIOS компа, сделать менюшку для управления питанием и подключения сменных носителей. Ну и у меня два пути: сделать расширение протокола (его согласны добавить к себе и в стандарт челы из TigerVNC, потому что проект - не хуй с горы и пользователей много), либо рисовать картинку.. Я склоняюсь к картинке, потому что протокол потом в стандарте не допилишь, а мало ли чего мне еще захочется рисовать.
Каждый метод экземпляра должен иметь первый параметр self Объясните пожалуйста максимально доступно, как ребёнку, зачем? Что означает строка self.name = name
Питонисты, расскажите, в чём вы пишите свой код. Какая-нибудь IDE? Какая? Как вообще выглядит профессиональное использование питона? Посмотрел бы что-то типа стрима рабочего дня.
>>1814694 >Питонисты, расскажите, в чём вы пишите свой код. Какая-нибудь IDE? Какая? PyCharm + Cmder в качестве терминала + Sublime для редактирования отдельных файлов, не входящих в проект.
>>1814693 >зачем? затем, что гвидо так захотел. ни больше, ни меньше.
>Что означает строка self.name = name self - ссылка на себя self.name - создать в себе переменную name self.name = name - инициализировать переменную name аргументом функции __init__
>>1814301 >>1814301 а если путей несколько? от старта идут 3-4 ветвления и к конечной точке идет столько же? каша же получится алгоритм чекает самое короткое расстояние и он будет скакать по всему графу
>>1815080 ты учти, что когда над объектом проводится операция, то либо ты в новую переменную сохраняешь, либо перезаписываешь текущую. Так-то за тебя ни интерпретатор, ни компилятор не додумает надо тебе результат сохранять или выбросить его к хуям при сборке мусора. Ты провел операцию округления, но результат не сохранил в переменной. Учти, что питухон прожорливый, чем меньше переменных с выделением ячеек в памяти, тем проще сборщику мусора. Тем более динамическая типизация.
Соре за тупой вопрос, только начал изучение Есть задание: Дан произвольный список, содержащий и строки и числа. Выведите все нечетные элементы в одной строке.
Вопрос в том, как мне сделать список, содержащий СТРОКИ и ЧИСЛА Что не так на пикриле?
Аноны, что значит этапы разработки веб-приложения? И еще такой вопрос, кто работает, можно уточнить для чего именно пилят эти самые веб-приложения, ну примерно. Не просто же сайты, фирмам надо для чего-то же. И по стеку. Джанги хватит? Или надо фласк и батл и пирамиды всякие знать. Что посоветуете для изучения? какие связки лучше юзать или дрочить. Например - бд sql alchemy веб - джанго, фласк или что? для деплоя че докера хватит? или надо дрочить ансиблы всякие? Ну и для девопа что дрочить? датадога хватит? Мне просто интересно, как происходит процесс создания веб приложух. С чего начинают, и тд и тп. Опыта нету просто. Читаю вакансии, пишут кто на что горазд, а что дрочить то конкретно? А, ну для фронта что? явы хватит с хтмл и кссом?
>>1815488 > этапы разработки веб-приложения? там сбор требований, формулирование задач, реализация, ревью, тестирование, выкатка, мониторинг и так по кругу
> для чего именно пилят эти самые веб-приложения, ну примерно для того чтобы приносить бабло, либо это сайты на заказ, которые делают какую-то хитрую штуку, либо внутренние тулзы для бизнеса, либо API для каких-то сервисов. 99% случаев это получить json, распарсить, положить в БД, отправить емеил, тыкнуть внешний сервис, собрать json
> Джанги хватит? да
> какие связки лучше юзать или дрочить django + drf flask + sqlalchemy aiohttp + sqlalchemy БД либо postgres или mysql, либо mongo
> для деплоя че докера хватит? да, но лучше потыкать в gitlab ci
> или надо дрочить ансиблы всякие не надо
> Ну и для девопа что дрочить elk
> Мне просто интересно, как происходит процесс создания веб приложух приходит твой начальник и говорит, что есть проблема: тетя срака устала считать на калькуляторе сделайте ей кнопку чтобы хуяк и заебись ты делаешь
> ну для фронта что reactjs
На самом деле знания лишними не бывают и то что ты шаришь в ансибле скажется на зп положительно. Но расписал стек который наиболее распространен сейчас
>>1815517 Годно спасибо большое отдуши анон, хотя бы есть куда искать теперь и что учить, и не быть дауном на собесе. Никогда не работал в этой области, хочу иметь хотя маленькое представление вообще что это такое и как строится процесс. У меня такое впечателние, приходит начальник - сдела то, не знаю сам что, чтобы делало то не знаю что за неделю. И все. Сидишь, потом встаешь и идешь нахуй.
>>1815534 Ну давай print([y for y in filter(lambda x : isinstance(x,int) and x%2==1, ls)]) По простому циклом for el in ls: if(isinstance(el,int) and el%2==1): print(el)
Интереснее циклом for el in ls: try: if)(el%2==1): print(el) except: pass
>>1815517 А по алгоритмам что посоветуешь? Или дрочить фрейм - этого хватит? Я имею ввиду - юзать уже готовые решения. Или надо будет именно все делать с нуля.
>>1815538 Ты тут по-моему выводишь нечётные по значению элементы списка. А в задании надо элементы по нечётным номерам в листе( первый, третий, пятый и т д) или я долбоеб код не понял
>>1815553 >Выведите все нечетные элементы в одной строке. Я это понял как нечетные числа. Иначе в чем вообще смысл? написать for el in range(0,len(ls),2): print(el)
>>1815549 > А по алгоритмам что посоветуешь? задачи самого простого уровня на leetcode, мб среднего
> Или дрочить фрейм - этого хватит? Я имею ввиду - юзать уже готовые решения Как правило поверх готовых решений ебашишь свое говно. Сложных алгоритмов нет (если ты конечно не попадешь на проект где именно алгоритмы и разрабатывают), в принципе поиск в ширину на графе или общей подстроки это самое сложное с чем может столкнуться веб-макака
>>1815603 кто сказал? реализация запрятана где то в сишном коде и там хз чо но то что принимае True и считает его за 1 говорит о том что таки что то такое есть
Доброго, товарищи программисты, я тут пока только начинаю приобщаться к великому, и я тут с проблемой столкнулся, а я даже не понимаю в чем она заключается.
Задача: Сколько полных часов, минут и секунд содержится в x секундах? Разложите имеющееся количество секунд на сумму из x часов + y минут + z секунд
Мое решение: s = int(input('введите кол-во секуд: '))
x = int(s/(6060)) # це часы
y = int((s-x6060)//60) # це минуты
z = int((s-(x6060+y60))//60) # це секунды
print(str(x) + ':' + str(y) + ':' + str(z))
Проблема решения: Код почему-то упорно не желает высчитать z(т.е. оставшиеся секунды) и приравнивает его к нулю. И я упорно не могу понять почему так нахуй. Буду рад вашим мыслям по этому поводу.
>>1815813 Ну тут только переменные, нету логики. Даже не вдаваясь - в этом причина. Нужна логика, алгоритм решения. Те сначала решить, потом закодить. А ты просто объвил переменные сделал контенацию и вывел. Этого мало.
>>1815823 Мен, сори, я тебя не понял. Можно поконкретнее что ты под логикой подразумеваешь? Мне кажется, что она есть, но может у нас разные понимания дефиниций.
>>1815813 Решил вопрос с задачей тем, что в z перестал ссылаться на переменные x и y, что выглядит максимально уебищно, но хотя бы работает! До сих пор не очевидно что я конкретно сделал не так, но похоже ответ на этот вопрос я так и не найду.
Как-то так это выглядит: s = int(input('Сколько хотите ссать мне на лицо в секундах?: '))
x = int(s/(3600)) # це часы
y = int((s-int(s/(3600))3600)//60) # це минуты
z = int(s - int(s/(3600))3600 - int((s-int(s/(3600))3600)//60)60) #це секунды
print('Вы хотите ссать мне на лицо: ' + str(x) + ' часов ' + str(y) + ' минут ' + str(z) + ' секунд ')
>>1815851 Меня волновал вопрос что именно я сделал не так в том коде, а не как решить задачу. Решить задачу - хуйня вопрос, а понять чяднт - полезно для понимания.
>>1815757 >>1815745 Чутка наебал, мне не просто "очередь с приоритетом" где в PriorityQueue лежат tuple вида: (приоритет, порядковый_номер, объект) а засовывать в очередь чистые объекты (без всяких кортежей), а сам объект уже содержит поле priority и чтобы очередь с приоритетом на основе какой-то коллбека или хрен я знает чего определила, куда положить этот объект. По итогу должен быть чистенький список с объектами, лежащими по приоритету, без всякой лишней ебени
Анончик, помоги тупиздню-вкатышку разобраться. Я на работе написал небольшой скрипт, который дергает апишку. Апишка возвращает мне json с нужной информацией. Проблема в том, что в жсоне возвращается дохуя полей, а мне нужны только нужные. Среди них - поле 'date' которое содержит дату вида '2020-05-20T20:41:42Z', а еще есть поле 'tags', которое содержит в себе много тегов, и тип у этого поля - list. Когда я делаю print(results['date']) - то у меня все выгружается красиво в столбик. А когда я пытаюсь выгрузить print(results['tags']), то питон пишет, что у меня KeyError: 'tags'. Собственно я и подозреваю, что это из-за того, что tags идут как список.
Как мне в конечном счете сделать принт только тегов?
>>1816217 Хотя нет, подумал, что чуть другую инфу надо выгрузить, но тоже не получается. На пикрелейтеде жсон, который я получаю. Мне нужно принтить значения поля created (с этим проблем нет) и поле 360000059967 (там где 'value': 'error'). Как мне это сделать?
Если что, у меня таких жсонов куча, так что я просто хочу складывать данные по полученным полям в заготовленные переменные через append, выглядит это вот так https://pastebin.com/22D4BDkM. Принтом я просто дебажу.
>>1816245 Попробовал втупую это скопипастить, но выдает ошибку KeyError тоже.
>>1803801 (OP) Живу в пгт на 10к живых, так вот у меня вопрос, могу ли я допустим отправить резюме в дс, пройти собес удаленно и если успешно пройду, ехать уже туда со 100% уверенностью что у меня работа есть? Просто не могу сейчас ехать и рисковать в дс, и искать работу, так как денег на месяц жизни едва хватит.
>>1803801 (OP) Есть питоновский модуль, там множество как функций так и классов. Хочу чтобы при вызове любой функции оттуда или любого метода класса (кроме специальных) логировалось имя этой функции/метода. Как это сделать? Вангую надо обернуть каждую функцию и каждый метод класса особым образом, но как это сделать на практике?
>>1816595 конкретно в данном случае такое написание вогнало тебя в тупик , вообще можешь пробежать глазами по ф-строкам питоновским на какой нить статье
Тыкаю fastapi имея опыт работы с sanic и aiohttp, как то странно они реализовали аргументы в контроллерах, семантическое определение реквеста в зависимости от тайп хинтинга
Абсолютно тупой вопрос: вот есть у меня допустим публичный репозиторий на гитхабе, чтобы можно было показать кому-то. А в нем скрипт на питоне, в котором используется Api key сайта. Есть какой-то способ этот api key скрыть от посторонних? Как вообще люди делают?
>>1816940 >А в нем скрипт на питоне, в котором используется Api key сайта. Есть какой-то способ этот api key скрыть от посторонних? Как вообще люди делают? Все настраиваемые параметры должны быть в конфигурационном файле. Этот файл тоже является частью проекта, но перед коммитом значения логинов/паролей/ключей нужно удалить.
>>1816973 >они в гит не должны быть проиндексированы и хранятся локально Конфигурацию можно и нужно добавлять в гит, просто надо удалить все значения, оставив только ключи.
>>1816973 А если, припустим, нужно задеплоить бота телеграм на какой-то хероку, то его нужно для начала на репу залить. Если выложить код без токена, то он ведь не будет рабоать, не так ли?
Пол года назад занимался Питоном, забросил, сейчас снова взялся. По сути, в общем, занимаюсь им уже около полутора лет, но за весь этот огромный промежуток времени я так и не смог осилить жалкий справочник авторства Майка МакГрата. Я только читаю и переписываю кусочки кода из книги. Существуют ли какие-нибудь задачники, практики и тому подобное?
>>1817184 У меня подобный реквест. Но я хочу задачи по рил лайф, то что требуется в конторах, офисах, фирмах. Чтобы кодить под определенные задачи. За что именно платят. А не так, решать математические задачи хуй пойми для чего.
Итак, реквест. Какие задачи будут стоять перед питонистом в офисе?
Есть способы собрать файл написанный на питоне для apk под андроид кроме бульдозера? Или это вообще сказка? Я не могу понять, такое комунити, тоны разрабов, и нету нормального человеческого портирования на андроид. Пачему?
>>1817203 Прочитал про виртульную машину бульдозера для виртуалки, но на оф сайте не могу найти образ, может кто знает? У хауди была ссылка, но не могу найти почему то, или вообще выпилили?
В общем уже как с полгода вкатываюсь + просто кодирую всякие штуки для себя. Проблема в том, что я за все это время так до конца и не понял, как работает механизм импортов. Вот у меня есть такая структура проекта, точка входа находится в ./src/app.py, был добавлен alembic просто в корень. Далее, при настройке этого алембика пытаюсь сделать импорт нужных штук, как на пике 2, на что при миграции получаю наверное закономерную ошибку импорта. Видите ли, этот пидорас на находит модуль... Внутри ./src и всех подпапках импорты работают прекрасно, везде есть __init__.py файлы Чяднт? Вручную в sys.path добавлять путь(какой?) Неужели алембик криво накатил?
Двач, у меня горит жопа, впервые пытаюсь нормально минипроект доделать, чтобы потом его можно было любому скачать и установить все, сделал pip3 freeze, а потом как я понимаю надо удалить папку venv, чтобы все устанавливалось автоматически. git rm удалил ее полностью, в итоге еле восстановил, добавил в .gitignore потом опять все исправил и в итоге когда пытаюсь пушить на гитхаб он ругается, требует сделать гит пул, делаю, он удалят мне venv с компа, скажите в каком порядке нужно делать, чтобы локально у меня была папка venv, но на гитхабе ее не было
>>1817478 Если начинаешь проект, то добавляешь в гитигнор сразу, если хочешь убрать из трекинга что нибудь потом не удаляя, то git rm --cached твой файл/директори
>>1817200 в офисе: парсить и перекладывать по локалке экселевские таблички разные, парсить сайты конкурентов в теже таблички, что-нить мониторить в локалке / на сайтах и мылить уведомления куда надо.
>>1816565 Ты можешь написать декоратор, но не для самого класса (чтобы не переписывать класс/переопределять методы), а для экземпляра класса. А потом по ходу выполнения функций логировать нужное с помощью атрибута __name__