Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
парни подскажите как сравнить по столбцу 2 csv файла без заголовков. и если строка со 2го совпадает с первым дописать в совпадающую строку в 1м определенный текст?
>>1720216 Читаешь второй полностью и делаешь словарь, потом читаешь первый построчно, сверяешься со словарем и пишешь в новый файл. В конце переименовать новый на первый.
>>1720224 и это из твоего алгоритма выходит содержание 2го в 1м. Мне надо чтобы все строки из нужного столбца остались и рядом в другом столбце была пометка что он совпадает со 2м
>>1720251 Вот я примерно подобное делал https://pastebin.com/iyaG7H23 Надо только добавить модификацию row ну и формирование словаря для твоего варианта.
>>1720283 Процедура ОбработкаВнешнегоСобытия(Кто,Что,Зачем) Если Кто="Анон" Тогда Если Что="послалТебяИзТреда" Тогда Сообщить(Зачем); КонецЕсли; КонецЕсли; КонецПроцедуры //ОбработкаВнешнегоСобытия
просто это богомерское поделие погромированием называть западло
>>1720293 На самом деле это вообще не проблема - есть англоязычные синонимы для всех выражений. Непривычно только первые пару дней, если заставят на таком кодить конечно желаю всем в этом треде никогда с 1С не столкнутся, это ад кромешный для стойких духом людей.
>>1720301 ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича не одобряет англоязычные синонимы только АДъ и жопоболь!!!!!1111
Что я опять делаю не так, почему он не игнорирует регистр при проверке слова 'yes'? Если написать YES, то не прокатит. Ни разу еще не получилось эту ебаную проверку правильно написать.
>>1720321 Спасибо. У меня как в Шерлоке Холмсе - каждый раз я здесь что-то спрашиваю и когда отвечают я такой "да это же элементарно, как я сам до этого не додумался?". А вот сам додуматься не могу.
>>1720203 (OP) > 3 Что-то у меня впечатление с этим typing, что рано или поздно вхуячат какой-то import strict для обязательной типизации и зафорсят его, лол.
>>1720327 У меня в общем накипело. Я относительно недавно сел учить, чтоб мозги чем-то занять. Пока проходил азы - переменные, списки, словари, итерацию - все было просто и понятно. Как только пошел control flow - if, while и чуть более сложные задания, я просто сник. Вообще нихуя не понимаю, делаю задачки либо просто интуитивно, либо вовсе наполовину списываю из ответов, абсолютно не понимая что я делаю.
Не знаю теперь что делать дальше - либо перечитывать материал снова и снова, либо двигаться дальше, надеясь, что с опытом это все нанизается.
С помощью peewee пытаюсь удалить все элементы, которые не принадлежат ни к одной группе: Group.delete().where(Group.elements.is_null()).execute() Не работает. Что делаю не так?
>>1720524 on_delete='CASCADE' вообще не чешется при удалении плейлистов. Пробовал в обе стороны её пихать. Хотелось бы, чтобы автоматически удалялись осиротевшие треки.
>>1720524 Playlist.delete().where(Playlist.user == self.db_user).execute() Плейлисты грохаются, а треки остаются.
Пох, думаю, давай ручками: Сначала удаляю связи:
pls = Playlist.select().where(Playlist.user == self.db_user) for pl in pls: for track in pl.tracks: track.playlists.remove(pl)
Связи удаляются нормально. Дальше пробую такое: Track.select('title').where(Track.playlists.is_null()).execute() Запрос получается такой: SELECT "t1"."id", "t1"."code", "t1"."title", "t1"."artist", "t1"."duration", "t1"."link" FROM "track" AS "t1" WHERE ("t1"."playlists" IS NULL) при попытке выполнить: peewee.OperationalError: no such column: t1.playlists Причём в модели эта колонка есть (я её и туда и туда пробовал добавлять, весь день ебусь с этой сранью). Проще было уже голом SQL всё это написать 10 раз, чем с этой орм гадать что там у разрабов в голове было, когда они её писали.
>>1720604 Более того, заново создал и наполнил, даже специальную функцию для этого написал, чтобы экспериментировать. Или ты про то, что Каскада срабатывает только во время миграции?
>>1720630 я про то что каскада это же в sql CASCADE DROP и надо чтобы в таблице было определено бля если честно хз, надо смотреть какие запросы генерирует peewee и че там в документации мб другие аноны подскажут
>>1720674 Ну вот у тебя есть ForeignKey constraint, если ты удаляешь этот ключ, то на что собственно ссылаются все значения для него? На NULL? На несуществующий ключ? чекни с django orm не сталкивался с такой херней
>>1720730 Там создаётся отдельная таблица соответствий посредством .get_through_model() В ней ведётся учёт что к чему относится. Но вот как потом удалить элементы, которые больше не соотносятся ни с одной группой. Прямого доступа к этой таблице я не нашёл, явно её объявлять и описывать её логику, что за меня уже сделали - я ебал. Всяко есть какое-то штатное решение, задача-то тривиальная - избавиться от бесхозного мусора в БД.
Вот есть у меня сразу 3 py-файла с одинаковым именем myfile.py (в разных директориях), если я буду проводить импорт import myfile, то какой именно из файлов будет импортирован? По какой логике работает поиск модуля?
>>1720971 >если я буду проводить импорт import myfile То импортируешь файл из текущей директории. Для импорта из других директорий надо дописывать их названия (import directory.myfile)
>>1720977 >То импортируешь файл из текущей директории Домашняя дир тоже в пути есть по дефолту, что произойдет если в pwd и в home два разных файла с одинаковым названием? Первый попавшийся возьмет?
Как во Фласке отдать на скачивание файл? @app.route('/files/<filename>') def get_output_file(filename): Ничего не выходит, пишет: FileNotFoundError: [Errno 2] No such file or directory: '/files/yobafile.yo'
Пиздец этот ваш питон конечно... Куда ни сунешься, везде невероятные (и это не эпитет) фантазии извращённых интеллектуальных уродов. Ни одной нормально-интуитивной библиотеки или технологии. Всё через жопу. Максимум абстракции, минимум покрытия актуальных задач. Язык для тех, кому не продукт нужно сделать, а время убить, разбираясь в том, какую невъебенную конструкцию наворотил какой-то очередной мудак... И да, я мог разбить этот абзац на сотню функций и классов, ссылающихся друг на друга, но не буду, потому что в отличие от названных, понимаю, что мой текст на цитаты не разберут и принципы ООП тут ни к чему. Как и в большинстве питоновских поделок с кучей бесполезных обёрток, хорошо ещё если в рамках одного проекта.
>>1721066 Для начала покушать. Но не много. Сытое брюхо к учению глухо. Затем найти системник. У меня вот на холодильнике валяется core 2 quad 95что-то-там, с 4 винтами в btrfs RAIDе. Тоже когда-то хотел и мог. Сейчас пылится. Ставишь на него Ubuntu сервер, там вроже сейчас в альтернативном инсталлере уже есть LAMP, ставь сразу его. Дальше по мануалам. От себя советую накатить webmin. Удобная штука. Про настройку твоего mikrotik рассказывать не буду, мануалов куча.
Стандартными либами возможно реализовать такое: Слушать 3-4 папки с файлами, при появлении новых файлов в этих папках копировать новый файл в 5-ю папку, переименовать копию в имя например folder_1_год_месяц_число_время
>>1721191 Задачка простая. Там кстати ещё переменная в enumerate пропущена и хз будет ли вообще работать, не запускал. Если всё проверять и вылизывать, будет намного дольше.
>>1721068 Пишу для Армы 3 конфиг-файлы питоном. 10 мб exeшник позволяет иметь кучу (7 человек) людей, которые вообще не знают, как работает система конфиг-файлов внутриигровых, но при этом могут импортировать в игру готовый к работе контент. Специально не учился, работаю 2 часа в день. Всё, с чем встречался - написано нормально и разумно. ЧЯДНТ?
Привет, пытаюсь тут вникать в ооп и попутно в обработку ошибок/тестирование Собственно, как мне адекватно засунуть ексепшены в один метод?(а потом и в другие). Он на этапе конструктора подключается к внешнему api и сверяет кое-какие права доступа, иначе программе лучше отвалиться
Подумал написать кастомные исключения. Как минимум, одно для проверки, что авторизация|подключение происходит успешно, а второе для проверки, что метод возвращает правильный ответ (если token и client_id правильные - в ответе должен быть список прав доступа для приложения) https://pastebin.com/s3fKhSD0
Мне бы пример, как можно в своих (унаследованных от Exception) классах писать новую логику для использования в try/except блин какой то шизоидный вопрос получился, но и в гугле забанили
>>1721434 Ну вот например задание: создать список с названиями чего-нибудь. Затем создать пустой список. Затем с помощью вайл-лупа взять каждый элемент из первого списка, написать что нибудь про него и перекинуть в пустой список, затем показать, что эти элементы и правда в пустом списке.
Я не переварил принцип работы вайл лупа и не могу понять как нужно писать while True - или while [условие]. У меня постоянно бесконечные циклы вылезают. Хуита какая-то, вроде ничего сложного здесь не должно быть, а я чет затупил.
>>1721907 >написать что нибудь про него Сочинение чтоли? Что значит написать про него? Вывести на экран или добавить в словарь с описанием? >>1721907 >элементы и правда в пустом списке Это как вообще??? В новом списке может?
>>1721936 Там в первом списке типа никнеймы. Написать всмысле print(). "Юзернейм логинится" например - написать обращаясь к списку с юзернеймами. Потом перекинуть элементы из этого списка в пустой и написать "юзернейм залогинился" обращаясь уже к пустому списку. И все это через while.
>>1721912 Такое через while обычно только в очередях делается, когда множественный доступ к одному списку. В большинстве остальных случаях нормальные люди используют for element in list, или даже enumerate(), ибо первый лист проебать обычно не хочется, а память экономить нынче нет нужды.
День добрый, господа Питонисты. Пришла мне тут задача читать с файла, который все время "дописывается". И вот, тут я почувствовал, что бессилен. Нужно читать, соответственно построчно. Обоссыте, но объясните.
>>1720203 (OP) Парни, как сделать полное сохранение информации Traceback от эксепшнов? У меня парсер проходится по ссылкам и перехватывает эксепшны на каждом url, который обрабатывает, сохраняя при этом информацию об ошибке, чтоб потом было легче понять, что пошло не так:
Собственно Ошибка: Traceback (most recent call last): File "C:\PyCharmProjects\brower\posts\parsing.py", line 127, in work_on_resource results = self._handle_resource() AttributeError: 'NoneType' object has no attribute 'text' Сохранение ошибки в список errors: except Exception as e: ____errors.append({"exception text":e, "resource":url}) ____continue
Сохраняется только последнее предложение (в данном случае: NoneType' object has no attribute 'text'), а я хочу чтобы сохранялась вся информация об ошибке, в том числе номера строчек, в которых она произошла
>>1722788 если это по работе то гугли sentry если просто, то делай logging.exception(e) если хочешь прям сохранять в errors, то так и делай errors.append(e) если прям пиздец то гугли sys.exc_info и модуль traceback
я опять пришол со своими ахуительными вопросами Есть базовый класс с асинк методами (например) class Base: ----def __init__(self): pass ----async _def some_func(self, *args): ----#тут некая сложная логика --------return await result И есть класс наследник, который работает как упрощенная обертка для методов родителя class Child(Base): ----def __init__(self): --------super(Base, self).__init__() ----def some_func(self, x, y, c): --------return self._some_func(self, x, y, c) Так вот, почему во втором классе функции работают без операторов async/await? Точнее, если где-нибудь из мейна вызвать Child().some_func() вместо await Child().some_func(), то разумеется, будет ошибка. Но в самом классе Child можно написать def zalupa(self): ----return [i for i in self.somefunc(...)], например Как бы понятно, что это просто ссылки на методы в родительский класс, но все же, почему так?
Здарова, пацаны(и пацанессы). Изучаю Python, всё нравится. Но также надо и практиковать свои знания. Мне всё время ссылку на сайт http://www.itmathrepetitor.ru/zadachi-po-programmirovaniyu/ кидают. Я смотрю в каждом разделе около 100 и более задач. Надо их прям все решать? А то я решил 60 из задач по вычислениям и у меня крыша съехала уже.
>>1723063 Сделай на Селениуме парсер питон вакансий на авито с сохранением кукис для авторизации и чтоб команда консольная по крону брала из БД спарсенные вакансии с авито и писала их в эксель файлы. Вот это примерно то что нужно на рвботе, а не ссаные задачи на 2+2 в степени 200 и ряды сходящиеся
Мне вот в Джанго queryset надо отфильтровать значения не по равенству а по неравенству, то есть: у объектов есть поле category, надо отфильтровать все объекты у которых category != "Fiction" Это как делается?
Вызывается функция, чтобы принтануть возвращенное значение, в функции проверка и рекурсия это слово ведь именно это обозначает? в случае, если введено не то, что нужно. Но затуп в том, что при повторном вызове как бы теряется связь и print выводит None
Вопрос: как быть, чтобы всегда возвращалось нормальное значение? И желательно не высирая кучу строк, т.к. я это и решил сделать для похудения кода
>>1723077 долгие годы у юниксоидов существовали простые неписанные правила написания скрептов для cron: 1.настроить в crontab MAILTO 2. не выводить ничего на stdout, если задача работает нормально. 3. я сказал, ВООБЩЕ не выводить ничего на stdout!
но ебаные пхпшники не понимали как работает cron и почему эти правила важны, в итоге родился Celery и пр. девопс с доставкой логов.
>>1723291 В принципе, ты можешь использовать эти правила и не погружаться в остальную фигню. Если что-то сломается, программа вывалит в stderr или stdout информацию и логи придут на почту. А пока все работает - тебя ничто не побеспокоит. Насладаешься своим карантином на удаленке.
Слышал, что реальные пацаны в django хранят бизнес-логику не в моделях (как пишут в оф. документации), а в отдельном файле services или utils. Есть примеры как это правильно делать и вообще зачем?
>>1720203 (OP) По какой логике Джанго ебучая ищет фикстуры? Создаю я json файл с fixtures для теста (TestCase), указываю в тест-кейсе имя моего файла, а при запуске теста он мне пишет что типо не нашел его. Чтобы нашел надо кидать файл в самый корень проекта - что захламляет директорию Как сделать так, чтобы фикстуры лежали в той же папке что и юнит-тесты?
Работаю системным аналитиком, руководство с нового года требует знание питона. Посоветуйте годные курсы, т.к. оплачивать будет компания, а я хочу подкинуть начальнику идеи, чтобы получить самые топовые знания и, возможно, уйти из конторы
>>1723297 Да без разницы вообще, 32 бита или 64. Только для каких-то специфичных бинарных либ может быть разница.
И версия не очень критична, ну то есть не вторая, конечно, и не совсем старая третья. 3.8-3.9 от 3.7 вообще почти не отличаются, обратная совместимость почти полная, если только не совсем какое-то легаси.
Сап, подскажите, где хранить URI от базы данных, если размещаю пет-проект на гитхабе Можно ли его спокойно оставлять в коде или нужно сунуть в какие-то конфиги, которые будут в гитигноре?
>>1723365 Сервисный слой (или доменный еще), не обязательно именно файл. Это не столько к питону и джанго относится, сколько вообще к бест практис. Не уверен, что на питоне многие это практикуют. Гугли всякие паттерны, солид, DDD. Недавно коротенькую книжеку перевели по этой теме, но там примеры на ларке.
Джентльмены, подскажите, пожалуйста, либу какую-нибудь, с которой я могу не зашифровывать и расшифровывать строку. Хочеться сразу что то не сильно заебное найти, при этом, что бы нельзя было эту тему перехватить и расшифровать, не зная ключа какого-нибудь, например.
>>1724083 Тебе нужна либа pycroptodome Она вроде всё умеет.
Там есть примеры. По-хорошему, ещё бы тебе надо теорию почитать про режимы шифрования и т.п.
Используй либо AES (блочный шифр, но тогда надо почитать про режимы шифрования), либо какой-нибудь потоковый, Salsa20. Примеры есть, по 5 строчек на шифрование-расшифровку.
Про Salsa20, после шифрования там перед текстом добавляется 8 байт из аттрибута nonce, это некая случайная величина, нужная для работы алгоритма. Так это работает, остальное в примерах совсем очевидно.
Перенес проект с винды на убунту, как только загрузил его в пайчарме выскакивает ворнинг: Cannot Run Git. File not found: git С чего бы это? Гит вроде должен нормально между разными осями переноситься
>>1724708 да курс от гоши гондаря по питону и мануал по джанге и на изичах залетишь на галеру, там годик перекантуешься и уже мидол. дальше проще - походи на собесы и можешь в банк или продуктовую компанию, там ещё годик и можно в сеньёры. а там уже и в сша или ес. не слушай никого, это ж айти. тут голод кадровый!
>>1725011 Я смотрю на список и вижу мобильный клиент видеоконференций, аналитику накопленных данных и традиционный бекэнд на django , которую пропустили, как само собой разумеющиеся.
Человек, который все это затащит, может существовать, но разве что на уровне ПМ-а. Программировать это все одновременно сложно.
Анон, изучая питон, решил заебенить бота для телеги. И вопрос. Какую либу лучше использовать и как быть с блокировкой? Прокси я не хочу поднимать на всяких впс за даллары, есть ли либы, которые работают с МТПРокси а не сокс5?
Сильное ли упущение читать Mark Lutz изучаем питон 4 издание(2011)? столь старое издание? Или уже дочитать и не париться? Пятая часть только на английском и очень плохом качестве, что мне критически не подходит.
Ставлю я пакеты в проект на Линух понимаешь ли через pip install -r requirments.txt и мне в конце выбрасывается error:
Error: b'You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.\n' ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-7briw_re/psycopg2/
Что-то с postgres ему не понравилось, но я ж блин уже установил postgresql и postgresql-contrib себе в систему. Что ему не так? (на винде все и так ставилось...)
Помогите с капчей.
дмитрий ананас16/06/20 Втр 23:23:40№1725345154
Короче суть в том, что мне нужно решать recaptcha v2 ( видимую ), но она использует callback, блять, когда я делаю self.browser.execute_script('recaptchaCallback();') у меня вылезает ебаная ошибка, что капча уже зарендерена... я пытался передать решенную капчу в функции, но это ничего не изменило.
>>1725328 Решение: надо было поставить еще кучу трипиздячих пакетов через apt install ну хули в линухе столько заебов? в винде psycopg2 работал без левой хуйни
>>1720332 Это нормально, просто дрочи дальше, решай задачки. Если что-то не получается - отдохни и вернись к этому позже. В конце концов ты поймёшь. Только не забывай заниматься регулярно - это самое важное.
def is_prime(n): if n < 2: return False if n == 2: return True if n % 2 == 0: return False
sqrt_n = int(math.floor(math.sqrt(n))) for i in range(3, sqrt_n + 1, 2): if n % i == 0: return False return True
def main(): with concurrent.futures.ProcessPoolExecutor() as executor: for number, prime in zip(PRIMES, executor.map(is_prime, PRIMES)): print('%d is prime: %s' % (number, prime))
if __name__ == '__main__': main()
почему, если вставить print(1) после импортов, происходит пик? я понимаю, что у меня 24 логических процессора (именно столько единичек), но почему так работает? Он с каждым открытием нового процесса исполняет код основного вместе со всеми импортами? У меня интерпретатор кривой, или так и должно быть?
>>1725643 Во-первых, единичек должно быть 25 (кол-во логических процессоров плюс один, который main). Импорты в каждом процессе должны быть по-любому, а почему запускается остальной код - хуй его знает, особенности имплементации. Засунь print в main, и он не будет выполняться 25 раз.
Посоны, кто на питоне пишет в Visual Studio, объясните, почему при открытие отдельного файла, вне проекта, окно Class View пустое, как заставить среду, чтобы она парсила файл в любом случае, хоть в отдельном файле, хоть в проекте?
>>1725648 то есть мне нужно вообще весь код обернуть функциями еще и все импорты засунуть в main? только тогда он не будет исполнять лишнего при создании процессов?
>>1726075 мы не знаем telegram api работает поверх http , так что тут именно socks прокси должны быть. А mtproto какая-то хуйня телеграмовская, хз как ее поверх http делать
Надо взять 2 word-файла (один - старая версия, второй - обновленная версия того же дока) и пройтись по ним, детекча изменения в колонтитулах (тело документа смотреть даже не надо). Потом вывести номера страниц, где произошли изменения... Есть вроде либа конкретно для работы с docx однако хз как там обрабатывать колонтитулы
Аноны, есть желающите попилить попенсорсный декстопный проект под линупс + шинодвс? Планирую брать QT5. под это дело. Особых требований нет, поэтому хорошо подойдет для начинающих изучение пистона, главное что бы у вас было желание пилить что-то вместе, развиваться и набираться опыта. Всегда буду рад помочь/подсказать и поделиться опытом разработки. В прожекте будет БД, GUI, хттп запросы, работа со сторонним АПИ, CI/CD, доцкер, ну и пистон 3,6+. Фейкопочта для связи, пиши, не стесняйся - [email protected]
Сап, как открыть из одного окна другое на pyqt5? Скиньте пожалуйста статью какую-нибудь где это подробно рассказывают, а не просто показывают код и говорят "наслаждайся и пользуйся"
>>1720203 (OP) Все время я юзал в Celery обычные процедуры для работы с БД - они ничего не возвращали и аргументов тоже не принимали, поэтому вопрос: когда task celery возвращает какой-то результат, то куда он идет? И в чем смысл аргументов таска, когда я запускаю какую-то задачу через cron? Где он эти аргументы "находит"?
Пришло время залить мой говнокод на серв и задеплоить все в инет... Только я что-то нихрена не шарю, одна каша в голове: в чем разница между Gunicorn и ngix? Я думал это софт для сервака, на котором работает uwsgi-приложение, и ты ставишь либо одно либо другое, но оказывается gunicorn часто ставится под nginx... (шта?) Где подробно разжеванно что происходит на серваке а в особенности в чем разница между apache, nginx, gunicorn, heroku - они для меня все на одно лицо
>>1727242 nginx это сервер общего назначения, он принимает и обслуживает все запросы, питоньи передает питоньему уникорну на обработку. Так работает быстрее и масштабируется.
Привет. Не так давно пытаюсь разобраться с джангой, поэтому хотелось бы получить от вас несколько советов.
1.Какие модули вы чаще всего используете? 2. Если не брать во внимание собственную борду, то какие проекты не стыдно было бы отправить в портфолио? С блогами, как я понимаю, практически всегда нахуй шлют. В принципе интересно узнать, какого плана работы вы на собеседованиях показывали.
Аноны, я вот осилил несколько книг по python, теперь хочу что-то на нем написать более-менее осмысленное. Поскольку Роскомнадзор таки сдался сегодня и разблокировал Телеграм, то решил попробовать написать бота для него. Понимаю, что вопрос платиновый не обоссывайте плиз, но не могли бы подсказать, с чего хоть начинать абсолютному нубасу во всех этих API и сетевом взаимодействии. Гугл выдает много всяких статей, но там или примитив на requests в десять строк, или гайд по рисованию совы.
>>1727242 >но оказывается gunicorn часто ставится под nginx Все верно. Ну ставь uwsgi под nginx, в чем проблема? >в чем разница между apache, nginx, gunicorn, heroku Apache и nginx - это веб-сервера общего назначения, а gunicorn/uwsgi - веб-сервера для пайтона. Можно использовать gunicorn без апача или nginx, но потеряешь производительность. Heroku - это просто PaaS-платформа.
Как же горит от кривых сука мамкиных мануальщиков, пидары нахуя пихать в каждый мануал для вкатывальщиков чем же блять та или иная команда отличается от с++ или от ждавы, нахуя зеленым это Горите суки
>>1727883 помню в далеком 2000-м, когда переходил с бэсика зх спектрума на ооп, тоже охуевал так. Но вскоре осознал, как это классно и красиво. на самом деле нет, все эти функции и классы просто кривые костыли, чтобы не юзать гениальный в своей простоте GOTO, но все продолжают делать вид, что так надо и вообще СТИЛЬ
>>1727672 я вот когда питон изучал, в прошлом году баловался, к нлп сеточке GPT2 прикручивал апи вк, апи двач (в бреде тред создавал и сеточка общаласьс анонами, пока модер пидор не забанил) Кстати, сеточку я претрейнил пару месяцев на русской поэзии, порно-частушках и спарсенного б-флуда, при этом юзал "кластер" из 8-и гугл колаб tesla v100, 8 акков бесплатных между собой конектил посредству гуглдискапи,и методом суммирования ошибок обучал. Такой проект пойдет для портфолио?
>>1721072 Ну формально он не лишний. Путь который начинается со слеша - абсолютный и ищется относительно корневой root папки «/», если же путь указан без слэша, то это уже относительный ищется и поиск идёт в парке проекта, которая передаётся через аргумент.
>>1728334 Можно через одинарную кавычку, можно экранировать с бэкслэшем, первый вариант предпочтительнее, если такого обрамления нет в строке, на крайняк можно обрамлять тремя двойными кавычками.
Где вы вообще такие только задание откапываете мудатские
>>1727857 Поддерживаю, нахуя вообще синтаксис нужен, лучше бы мы писали на русском, что хотим, а это уже конвертилось в байт-код, но чтобы работало быстрее раста. Короче питон - хуйня из под коня, раз так не умеет делать.
Короче есть таблица excel: |Материалы | Количество| Хуй. | 10. | Пизда. |. 4. | Хуй#1. |. 2. | ХуйBig. |. 1. 1 Пандасом выбираю все строка содержащее Хуй и проссумировать количество, количество записать в переменную, НО нужно исключить если есть big Как блять это сделать в сраном пандасе? Делаю через str.contains()
>>1728404 >Как называется нотация документирования функций, когда ты указываешь детально выходы, входы и вот это вот все? Читал не так давно, хочется перечитать. docstring
Нужен курс для анализа данных на Питоне. Несколько библиотек я знаю, но изучал сам, хотелось бы систематизировать все это. Ищу именно курс, так как знаю, что самостоятельно проебусь и опять буду в два часа ночи перед дедлайном смотреть на ютубе всезнающих индусов и их объяснения
>>1727299 >>1727839 Раз вы в теме, то объясните идиоту зачем uvicorn запускать совместно с gunicorn? Что такое ASGI понимаю, это асинхронный веб, а для чего связка WSGI + ASGI, если тот же uvicorn при малых нагрузках прекрасно сам справляется? Сейчас есть веб-сервис для галочки на fastapi, связка такая
Reverse proxy Nginx -> uvicorn + FastAPI.
В данном случае нужен еще Gunicorn или нет?
Запускаю все как forked child из parent (там все сложно, веб реально для галочки и входящих запросов с гулькин нос).
>>1728488 Документация дерьмо, асинхронные библиотеки с псевдо robust connection (например aiomysql, aiopika) то еще дерьмо, в итоге костыли делал. Например если падает MySQL на стороне, то нихуя пул не поднимается, только заново создавать объект. Та же самая херня с aiopika, заново создавать соединение, канал и прочее. Опыт 1+ год на одном проекте. Из библиотек: aiohttp aiologger aiosnmp aiomysql fastapi aiopika
По сути только из-за того что не знаю что-то более экономичное. Зато хуяришь только так и это работает.
Заебался с asyncio и особенно с остановкой Process с вложенными asyncio loops.
Я косноязычный, но не могу более подробно объяснить все свои костыли.
В погоне за модой и приростом скорости нахуярил франкенштейна.
>>1728630 > Раз вы в теме, то объясните идиоту зачем uvicorn запускать совместно с gunicorn? 3 джанга насколько знаю может на одном uvicorn работать, иначе нужно 2 сервера, один для синхронной джанги, другой для вебсокетов.
>>1728441 >>1728633 Так, спасибо отписавшимся может ещё кто появится. Тогда у меня маленькая, о настойчивая просьба: нужен кто-то вроде наставника по питону, для того, чтобы иногда давать более-менее приближенные к реальным условиям задачи, да ревьюить говнокод. Все эти задачи, да петпроекты - хорошо, но они оторваны от реалий, и решения всяких задач на строки, простые числа, парсинг двачестраниц никаких плюсов в области практики фактически не дают. Поэтому, если кто-то соблаговолит немножко потратить немножко времени, буду признателен.
Аноны, есть проект. В нем 2 подпапки, в первой есть нужные функции и когда я пытаюсь импортировать их во 2й с помощью 'from папка1.файл import *' мне пишет, что такого модуля нет, какого хуя?
>>1720203 (OP) И кстати да: если я на один сервер залью 2-3 разных джанговских проекта (для экономии средств канешн), то как мне заставить celery/redis работать на разных проектах и не мешать друг другу? Запустить разные redis-server с разными портами? Или это нах не нужно?
>>1720203 (OP) Господа , помогите пожалуйста с задачей, не понимаю где ошибка в коде (Задача: Запросить у пользователя размер массива. Задать длину динамического массива. Запросить и считать данные массива у пользователя. Дана последовательность чисел а1, а2, …, аn. Найти положительную подпоследовательность наибольшей длины.) Код:a= int(input()) xyz=[] for i in range (a): xyz.append(x)
dlina_xyz = len(xyz)
numbers= [] for i in range(a): 1 =[] for j in range(i+1, a): if xyz[j]>0: 1.append(xyz[j]) else: numbers.append(1) break
Добрый день. Вкатываюсь постепенно в питон и тут встал вопрос: Есть пдф документ с таблицами и графиком. С помощью чего можно заполнить таблицу (6к записей)? Что почитать, посмотреть?
Ещё нужно нарисовать график, но основное это записи
Са питонач. У меня есть класс и в нем 2 листа: ид вк и телеграмма. https://ideone.com/lONvxP Я хочу обьеденить их в 1 лист. То есть хочу чтобы был лист из элементов и у каждого ид было какое то свойство, вк оно или телеграмма. Как это можно сделать чтобы было красиво? Подскажите пожалуйста.
>>1728865 то есть существует просто вариант использовать tuple, но тогда нужно будет обращаться к ид с помощью for i in vk_chats: print(i[0]) нельзя чтобы сразу print(i)?
Короче, то что ты написал это конструктор. Ты можешь в таком случае сделать единый метод add_chat, remove_chat. Добавить атрибут self.im_type = str. Задавай его как хочешь, при создании объекта или уже после.
и тогда ты создаешь объекты
vk_client = Chat('vk') tg_client = Chats('tg') Ну и методы add_chat, remove_chat для них одинаковые без ебли.
>>1728837 Спасибо. А ещё такой вопрос: Как мне удалить индекс или сделать так чтобы он не отображался или как убрать его визуально при формировании файла?
Сап, Питонач. Следующий код должен парсить /b/ и писать содержимое всех постов в файл. В консоль выводит на ура, а при записи в файл упорно выдает ошибку, сколько бы я ни прописывал 'ignore'. Что не так?
>>1729047 Ну по-идее, тебе надо передавать туплю\список или *args в функцию, а там уже смотреть документацию, поддерживает ли этот contains множественный поиск.
Телеграм бот на Питоне
Аноним20/06/20 Суб 17:33:45№1729065268
Ищу решения проблемы пикрил. Нужно написать чат-бота с кнопочным интерфейсом. Помогите разобраться с кодом. 1 картинка - это то, что должно получиться в идеале. 2 - говнокод
>>1729070 Я не знаю всех операторов, к сожалению... и весь синтаксис еще не знаком. Что дальше-то делать нужно? Чтобы выдавался текст после (A1,A2,Б1,Б2).
>>1729079 >я после работы жить то не всегда хочу Смени работу или пересмотри отношение работа:личная жизнь. > с тобой возиться Мне не нужно, чтобы у меня над душой стояли и натаскивали. Мне нужна практика, приближенная к реальной разработке и иногда код-ревью. А кто это сделает лучше как не настоящий разработчик на питоне?
>>1729266 Потому что понятия не имею как именно треды могут повести себя в долгосрочной перспективе. Может они вдруг захотят не завершаться, я хз В джанхе/питоне мультитрединг это всегда лишний шанс прострелить себе брюхо https://www.youtube.com/watch?v=_woaM9DrQIU
>>1729109У тебя коннектор к бд итак будет пул соединений держать(если это конечно не какое-то специфичное говно). Тот же MySQL драйвер делает это по-умолчанию. Под свьзью со сторонними ресурсами ты что подразумеваешь?
>>1720203 (OP) Есть у кого в сохранёнках ТГ канал с интересными фишками питона, как когда-то тут скидывали подобный канал, но в Твиттере? Поделитесь кто-нибудь
>>127724 Кто-нибудь деплоил фласк/джанго проект на собственном ПК в качестве сервера? У меня 2 ПК, на одном из них Убунту, можно ли на основе него заделать сервер-хостинг, который будет держать мой проект? Какие подводные?
Часто приходится писать парсеры всяких сайтов, и основная проблема, что обычно это многостраничники, с списком ссылок на отдельные карточки. Чтобы ускорить проход всех карточек каждой страницы, сейчас использую пул из мультрипроцессинга. Но всё равно хочется быстрее парсить всё это (при этом шоб не зобанили от частых запросов). aiohttp ускорит это? Или лучше ебаться в сторону проксей, запускать несколько экземпляров интерпретатора с генерацией запросов с разных проксей?
Я полный нуб, но под нужды диплома копался в питоне (NumPy, pandas, Matplotlib и несколько других специфичных библиотек по специальности).
В общем, я бы хотел систематизировать свои знания, потому что я просто рандомно гуглил нужные мне вещи. Можете посоветовать какие-то курсы по анализу данных? Мне нужно просто систематизировать то, что я знаю. Самостоятельно у меня не хватит мотивации все это учить
>>1729471 >>1729477 Пока я только пришёл к выводу, что нужно переписывать использование пула на отдельную генерацию процессов + очередь + рандомный лист проксей.
Анон, помоги решить задачу. Готовлюсь к собеседованиям, решил потренироваться на всяких таких задачах. Есть строка: "abba com mother bill mother com abba dog abba mother com". Нужно найти и вывести тройку слов, которые чаще всего встречаются вместе (порядок не имеет значения). То есть в моём примере тройки слов это "abba com mother", "com mother bill", "mother bill mother" и т.д. Тут правильным ответом должно быть "abba com mother" (частота — 3 раза).
Я решил способом как на скрине, но есть ощущение что понаписал говна.
>>1729649 Группируешь слова в пары по 3 слова, эти пары собираешь в одну строку, считаешь повторения, выбираешь самое частое повторение соединенной строки, разбираешь строку на слова и показываешь петуху результат.
>>1720203 (OP) Раньше в моделях у меня было поле category, в котором стояло CharField, там собственно лежала одна конкретная категория. Я понял, что в некоторых случаях уместно обавить несколько категорий в модель, то есть заделать вместо CharFild ArrayField (благо Postgres позволяет). Пусть даже у меня есть Django ORM, но как безболезненно заменить один тип поля другим? Я хочу чтобы вместо одной строки везде появились списки, в которых лежат строки, то есть где раньше лежала просто строка "string" должен появиться список с единственный элементов: ["string"], как это сделать?
Сап, программач. Хочу начать изучать питон для использования его в автоматизации тестирования. По скольку, как я понимаю, углубленно знать язык и все его тонкости мне не обязательно так как использовать его буду для скриптов по сути, хочу попросить вас порекомендовать книгу и иде. Только не Лутца, так как наслышан что она слишком подробная и скучная.
>>1730307 делоешь словарь из букв (или возможно пары букв будет достаточно), кодируешь каждый каждой кодировкой. Потом инпут проходишь, ищешь в этом словаре совпадение, значит кодировка скорее всего эта. Декодируешь или открой сорс код онлайн декодировщика и скопируй оттуда
>>1730325 Django will choose the first template it finds whose name matches, and if you had a template with the same name in a different application, Django would be unable to distinguish between them. We need to be able to point Django at the right one, and the best way to ensure this is by namespacing them. That is, by putting those templates inside another directory named for the application itself.
Можно ли сравнивать строки? Я беру текущее время в виде строки: current_time = str(datetime.datetime.now().time()) И сравниваю с временем в другой промежуток времени.
>>1730402 Сами даты с типом datetime.time я сравнивал. Но тут же у меня получаются две строки вида "22:20:10.10211" и "22:21:11.15211". Как питон между собой их сравнивает?
>>1730411 Класс реализует кучу всяких методов для типичных операций вроде сравнений, математики и того же вывода как строки. Тебе внутренняя реализация должна быть похуй.
>>1730312 короче когда данные по кодировке похерены ее надо детектить, онлайн кодировщики с помощью метода тыка угадывают гугли python detect encoding там найдешь либу вроде chardet можно другую какую-нибудь
Джангач, спасай! Есть FileField, хочется, чтобы можно было только загружать и удалять файлы. Делаю editable = false и в админке пропадает кнопка "Обзор", то есть возможность загрузить файл вообще (как в StackedInline, так и при создании объекта модели. Как решить?
Переменные окружения в линухе хранятся сразу в куче мест: как в файле /etc/profile так и в файлах домашней папки. Когда мы добавляем новые посредствам os.environ, куда именно они записываются? А в винде что происходит?
Народ есть три функции и они должны выполнится несколько сотен раз друг за другом принимая при этом каждый раз новые параметры, собственно прописывать их 100 раз с разными переменными?
>>1730737 Первая считает сумму определенных ячеек в первом эксель файле Вторая находит определенную строку в другом файле Третья присваивает значение первой в строку которую нашла вторая и удаляет строки из первого файла тк они отработали и не нужны После первого прохода функции принимают новые данные И так раз 100-200
Не слушай этого павлина >>1730761, все более-менее
>>1730750 >>1730775 >думал засунуть эти три хуйни в конце в какой нибудь цикл и гонять их подставляя значения
>calc('толщ.2,5', '10ХСНД') >writermy('Лист стальной толщ. 2,5 мм ст.10ХСНД ГОСТ 5521-93') >delmat() Можно запихнуть в класс Еще можно через ipywidgets в jupyter notebook использовать интеракт если известны уникальные значения, используй dropdown
Но лучше попробуй через класс
реально снеси все, и с чистого листа запили ООП класс
Пацаны, надо много визуализировать 2д-графики, преимущественно одноцветные прямоугольники в реальном времени. Матплотлиб работает слишком медленно, какую библиотеку для этого использовать? Насколько я знаю, есть старая pygame, а еще недавно читал про новый, то ли входящий в стандарт, то ли де-факто самый популярный фреймворк для 2д графики, но забыл как он называется и не могу найти. Подскажите пожалуйста.
>>1730904 В реальном времени - это 30-60 кадров в секунду. Что ты там делаешь, если у тебя матплотлиб медленно работает. Каждый раз новую фигуру строишь вместо clf?
Гайз. Как сейчас с поиском работы? Джуну? Вроде как проще с html, css, js и php, но не нравятся они мне. Открываю hh, запрос - python, искать только в названии вакансии
Кто шарит - скопировал страницу регистрации из Bootstrap и засунул в нее форму от Django. По итогу вот такая херня. Как подавить всю эту джанговскую поеботню? Чтоб вообще не вылезало и не захламляло экран?
>>1730926 Отрисовать массив из 256x256 разноцветных прямоугольников у меня занимает почему-то на несколько порядков дольше, чем я ожидал. Сверхъестественно медленно, короче.
>>1730950 >>1730926 блжад, в первом посте по гуглению "matplotlib slow" пишут очевидное "matplotlib may not be a great choice. It's oriented towards publication-quality figures, not real-time display"
>>1730941 Надоедливый helptext в принципе было несложно подавить через: span.helptext {display: none;} в css/html теге style
Однако что делать вот с этими "памятками" на пикриле ума не приложу. Они зашиты в самой джанго-форме, там даже классов и айдишников нет - просто теги ul и li, простыми манипуляциями с темплейтами их не дропнуть, что именно в джанго-форме django.contrib.auth.forms.UserCreationForm надо "дернуть", чтоб их убрать? Вариант с полным подавлением ul через display: none - временная и дурацкая мера
>>1731167 Через locals и globals можно получить мапу локальных переменных, если она внутри функции, или глобальных и и неё уже достать что нужно. Вот только подумай еще раз нахуй оно тебе.
>>1731275 Тоже всегда максимально удивляло это. В примере пишут: input("очень длинный текст типа введите количество говна" ) и они берут и прям так и пишут. Нахуя?
>>1731272 Да ошибочка была, но все равно не компилится. >>1731275 так епт ты подскажи и направь мысли в нужное направление, уверен, что у тебя тоже возникали трудности не получалось.
все разобрался, оказывается там что-то было в 14 строчке, просто alt+shift+enter нажал и все заработало.
Есть список типа: b = ['', '', 'version 15.0', 'service timestamps debug datetime msec', 'service timestamps log datetime msec', ' ip address 10.0.100.1 255.255.255.0', '', '', '', '', '', '', '', 'line con 0', ' exec-timeout 0 0'] Надо удалить из него пустые строки.
Если делаю for c in b: if (c == ''): b.remove(c) print(b) То часть кавычек остаётся: ['version 15.0', 'service timestamps debug datetime msec', 'service timestamps log datetime msec', ' ip address 10.0.100.1 255.255.255.0', '', '', '', '', 'line con 0', ' exec-timeout 0 0']
Если делаю так: d = [] for c in b: if c != '': d.append(c) print(d) То всё ок: ['version 15.0', 'service timestamps debug datetime msec', 'service timestamps log datetime msec', ' ip address 10.0.100.1 255.255.255.0', 'line con 0', ' exec-timeout 0 0']
Если на одном серве крутится несколько джанго-проектов, в каждом из которых запущен воркер celery, то они будут конфликтовать? При условии что юзают ту же очередь и тот же backend (redis на порте 6379)?
в первом случае нужно достать "01", во втором "п1", можно ли одной регуляркой решить эту задачу, чтобы не нужно было потом стрипать точки и убирать букву? Или я в корне не понимаю регулярки и суть в том, чтобы сматчить по шаблону что-то типа "01" и "п1" и потом уже с этим манипулировать?
Может у меня уже крыша едет, но в чём разница между выводом словаря и списка словарей? {a : 10, b :20, ...} или [{a:10}, {b:20}, ...] В чём глубинный смысл использования второго варианта и почему он так часто встречается в различных API?
>>1720203 (OP) Чё-то я сбит с толку. Почему вот эта хрень с пикрила внезапно работает? Мы создали одну функцию внутри другой, причем внутренняя counter обращается к переменной из внешней области видимости (т.к. мы обозначили ее через nonlocal). После вызова makecounter() мы получаем функцию, которая при каждом вызове дает нам увеличенное на 1 значение счетчика (причем если вызвать makecounter() несколько раз, то все полученные функции будут независимы друг от друга). Как так-то? По идее полученная функция должна пойти искать переменную i во внешнем scope, не найти ее и выдать NameError. Так почему этого не происходит?
>>1720273 Смотря где, живу в миллионике, на весь город 3-4 вакансии при чем везде middle+ требуется, еле вкатился год назад в полугосконтору, в целом язык приятный, пишется легко, некоторые вещи интуитивно пишутся, но на удаленку нужен опыт, брал текстовое недавно на удаленку в Московскую контору, ппц там и асинхронный код нужен и редис и селери и тесты чтобы были в итоге понял что не тяну. Пока сижу и не выебываюсь
>>1731917 Потому что в варианте с листом у тебя гарантировано идёт четкая последовательность объектов(словарей). В случае с простым словарём до версии 3.6 ты не мог завязываться на то, что ключи и значения у тебя будут в той же последовательности как они были добавлены. Т.е. обычно в словарях ключи со значениями хранятся рандомно и при последовательном переборе всегда будут идти в рандомном порядке.
Как реализовать подобное: в питоновский input (стандартный поток ввода) вводится текст с клавиатуры. После каждой нажатой клавиши надо выводить в консоль время, прошедшее с предыдущего нажатия... Короче это что-то типо продвинутых хуков на клавиши. Посредствам одного Питона такое можно реализовать? Или тут придется левым числом на низком уровне подключаться к запросам в ОС?
>>1732298 https://pypi.org/project/pynput/ Вот ещё библиотека. Включаешь Listener вторым потоком и сохраняешь в виде списка словарей или кортежей. {'event’: datetime.now(), 'key': key} или (datetime.now(), key). Я люблю hashmap, чаще всего использую словари. Потом проще ориентироваться или вообще сразу в JSON перегонять
Какой-то наркоман тут искал библиотеку для декордировки неверного отображения символов. Есть библиотека fify для этого. Вы вообще гуглить умеете? Хотя бы pip search использовать?
Анон, как правильно работать с mysql? Сделал класс database, который на ините подключается к базе данных. Этот класс имеет несколько методов для чтения и записи в бд. Как правильно: - подключаться один раз на ините или - написать декоратор коннект/дисконнект и украсить им методы чтения/записи
Вопрос по-другому: нужно ли переподключаться к бд перед каждым действием или стоит просто держать коннект всегда открытым?
Сап дроч, хочу обрабатывать excel файлы но проблема в том что они созданы пидарасами, пидарасы не понимают различия текстового и числового форматирования в итоге в столбце где должны быть числа (что бы с ними проводить мат операции) у них нахуячено вперемешку текст и числа че делать?
>>1732356 Тогда тебе точно никак не помочь. Можешь написать свою функцию decrypt_pidoras(string), которая будет искать каждый случай пидораства в строке и исправлять. Но, скорее всего, ты её дольше писать будешь. Легче файл ручками поправить автозаменой.
>>1732357 Думаю искать строки с текстовым полем в столбце вырезать эти строки и сохранять в отдельный файл а потом оттуда руками пердолить дальше, как же горит от совков которых посадили за пека
>>1732344 >нужно ли переподключаться к бд перед каждым действием или стоит просто держать коннект всегда открытым? Зависит от БД, к которой ты обращаешься. Если там параллельно с тобой ещё n людей/приложений стучатся с инсёртами/делитами/хитровыебанными селектами с 100500 подзапросами, то естественно держать коннект не имеет смысла, т.к. будут локи, если ты обращаешься к тем же сущностям. Если у тебя выборки никак не связаны, то не имеет смысла в принципе держать сессию после отработки запроса. Если у тебя выборки связаны (или создаются связанные временные таблицы), то лучше передавать сконкатенированные запросы через ; в одной сессии, так они могут быстрее отработать из-за кэша.
>>1732388 >т.к. будут локи, если ты обращаешься к тем же сущностям. А разве эта хуйня не должна решаться созданием пула подключений? Т.е. пул один из которого выдаются подключения по требованию, а если сущность залочена - 2й ждет пока в пуле освободится место для подключения?
Как в джанго рендерить темплейты формы?.. Вот у меня есть css-таблица, когда я вывожу форму в темлейт через {{ form.as_ul }} то каждая строчка уже выводится через <li> и я не могу ее кастомизировать, добавляя классы/айдишники в тег. Это как-то вероятно можно сделать внутри самого класса Form, но как?
>>1732415 Переписал парсинг хтмлин с bs4 + lxml через findAll на чистый lxml через xpath. Прирост по скорости был от x4 до x10 (вместо 0.3-0.8 секунд стало 0.03-0.2 секунд).
Я вот чего хочу: заниматься парсингом с помощью аддонов в браузере и визуального подбора выражений : ткнул в элемент - получил xpath модифицировал - получил xpath, возвращающий все серию данных. такие аддоны есть, но они не отменяют необходимости набирать xpath руками.
>>1732450 а, ну и классическая парсинговая проблема: как сделать такие якоря, которые не перестают работать при смене дизайна? что статистически выгоднее?
>>1732571 >ткнул в элемент - получил xpath >модифицировал - получил xpath, возвращающий все серию данных. Ты всё это можешь делать из обычного окна консоли браузера, курсором выделяя css селекторы и копировать их в код.
>как сделать такие якоря, которые не перестают работать при смене дизайна? что статистически выгоднее? Плодить кучу иф-элсов или справочники или модель мл обучить.
У меня в Джанго есть набор объектов модели Post внутри Group (у каждого Post есть ForeignKey, который указывает на конкретную Group) У каждого объекта Post есть свой порядковый integer номер (который канешн не повторяются) - получается что-то типо динамического массива, эти порядковые места могут меняться в зависимости от информации, введенной юзером на фронте Как сделать так, чтобы во время транзакции не происходило ошибок? Допустим нам надо "перевернуть" список изменив порядковые номера на "обратные": мы имеем queryset {Post(n: 0), Post(n: 1), Post(n: 2)}, начинаем с начала и меняем порядковый номер поста с n=0 на n=2, но пост с таким номером уже есть в базе и из-за ограничения unique, у нас вылезет ошибка. Как сделать чтоб ее не было?
Кто с numpy работал? Какого гуя этот мудак не хочет создавать двумерный массив из списка списков? list_of_lists = [[1, 0, 0, 1], [1, 0, 0, 0]] arr = np.array(list_of_lists) --- [list([1, 0, 0, 1]) list([1, 0, 0, 0])]
Нафига вообще может понадобиться такой расклад? Они там наркоманы что ли? Как мне получить двумерный массив из списка списков или хоть как-нибудь вообще?
>>1732605 А ржака в том, что в 1 случае из 10 примерно arr.ndim даёт "2", в остальных - "1". Я вообще не понимаю как так! Одна и та же прога даёт разные результаты при разных запусках!!!
>>1732388 Я уже заметил что ошибки вылетали на других приложениях. Добавил в класс методы опен и клоус и вставил эти методы во все коннекты. По ощущениям, разницы во времени нет. Спасибо за объяснение.
>>1732617 Пул нужен если у тебя постоянные обращения в базу. С точки зрения ресурсов у тебя снижается время и стоимость I/O операции, то бишь ты не коннктишься к базе, а берешь готовое соединениее. Пул нужен если многопоток или асинхронка используешь. Thread хуже асинхронки в плане сложности управления и по сути если хочешь распределить нагрузку через многопоточность с загрузкой ядер, то лучше Process. Алсо, сразу перекатывайтесь на asyncio. Я не понимаю зачем в 2020 году все ещё мучают Flask и Джангу. ORM априори медленный, stored procedure надёжнее и потом в случае изменений не придется код переписывать.
>>1732655 Всё намного проще. Бот в телеге данные раньше писал в джейсон, а я переделываю на базу данных. Бот мой, выполныет задачи синхронно последовательно, я его сильно не тороплю.
>>1732422 Ну если одинаковые параметры для конекшена я не думаю что это будет проблемой. Вот мне интересно как вообще с дедлоками бороться, есть mysql база, к которой я подключаюсь с помощью Aiomysql. Пул вроде сконфигурировал как было у них в документации https://aiomysql.readthedocs.io/en/latest/examples.html , метод сделал точно такой же как в последнем примере, т.е. коннект и курсор оно открывает/закрывает само с помощью контекстного менеджера, но при нагрузочном тестировании на 100+ пользователей оно начинает выдавать некоторое количество ошибок с дедлоком. Увеличивая размер пула получается уменьшить размер ошибок, но какой-то % все еще остается. Как с этим правильно бороться, или просто масштабировать ресурсы для бд/сайта?
>>1732655 У меня с некоторых пор развилась на фласк аллергия. А когда я увидел, как внутри написан сам фласк и веркзеуг (от того же автора) - необратимо охуел и выхуеть до сих пор не смог. Это же пиздец блядь.
Кто знает как в Jupyter вывести массив numpy полностью без сокращений? Думал сохранить массив в файл, а он и в файл сохраняет с сокращениями. Как получить оригинал массива?
>>1732909 Я сразу начал со starlette и перескочил на FastAPI, так как фреймворк по сути доделанный Starlette. Поддержка Pydantic, OpenAPI, SQLAlchemy. Но все дрочат на Django и все курсы веб питона именно про Django.
>>1732695 Курсор лучше закрывать вручную. Использую context manager, но в блоке try except else в конце ещё блок try except с закрытием соединений (например для aiohttp). Ну честно, хуй его знает, что будет в продакшене с большей нагрузкой чем в предпроде. По стоимости операция ни о чем. Тем более можно задавать wait_for(timeout=0.5).
>>1733006 InnoDB, тестировал на Шиндовс, Prepared statements. Я вроде и смотрел саму либу aiomysql и контекстный менеджер выглядел нормально, но если самому закрывать и конекшен, и курсор в конце контекстного - я терял 1/3 запросов за это же время, но % ошибок падал с 10-11 до 1-2
>>1733016 Если курсор закрывать самому оно почему-то теряет в количестве обработанных запросов за это же время, но тенденцию к уменьшению ошибок при этом я тоже заметил, спасибо. Пока заткну while'ом, в котором буду ловить дедлоки и выполнять операцию заново при нем, так вроде более-менее выходит по запросам, просто интересно в самой хуйне разобраться.
>>1733030 >Если курсор закрывать самому оно почему-то теряет в количестве обработанных запросов за это же время, но тенденцию к уменьшению ошибок при этом я тоже заметил Точнее не так, не на те данные посмотрел. При закрытии курсора теряется немного запросов, но % ошибок тот же, если закрывать конекшен из пула самому тогда уменьшается % ошибок, но теряется намного больше запросов за то же время.
Как оно так работает что у класса 'object' нельзя создавать новые атрибуты, а у всех других(обычных) можно? Тем более что __slots__ у object не определено, судя по dir(object). https://pastebin.com/ChVxgFAe
>>1733078 Откуда вы такие лезете? >Добавляет объекту указанный атрибут. >setattr(obj, name, value) >obj : object Объект, который следует дополнить атрибутом.
>name : str Строка с именем атрибута. Можно указывать как >имя нового, так и существующего атрибута.
Как быть с ленью? Дрючу питон в рабочее время на телефоне, пишу куски кода которые мне нужны для основной программы дома, но придя домой мне становится лень переписывать то, что я до этого уже сделал. Как это фиксить?
>>1733011 Потому что это на джанге проще всего наговнокодить среднестатистический сайт, примерно столько же нужно усилий, как в случае с пыхпых-говном. Логично, что уровня особого для этого не требуется. А если прямо, ты вообще много видел в природе питонистов, которые действительно понимают, как надо работать с этим языком, и проекты которых не превращаются в кашу по достижении полутора тысяч строк? И я не про стиль, а про общую архитектуру. Синглотоны, глобальные переменные, шаманства с атрибутами там, где все это не нужно. Я лично за всю свою питон-карьеру (13+ лет) видел где-то ну с десяток человек, которые умеют писать на питоне. У остальных же не код, а ебучий поток сознания блядь.
>>1733481 программировать умеют только джависты. Жс-пидоры и питонисты - просто дети, играющиеся с кампухтером. Даже на крестах мало кто умеет программировать из-за изначальной заебистости языка, наплодившего кучу сущностей и параллельно облегчившего быдлокодинг для вкатывальщиков
>>1720203 (OP) Аноны, пишу приложение на kivy под андроид. Apk buildozer'ом собирается без ошибок, но при запуске приложения оно сразу же падает. Посмотрел логи на телефоне, он пытается найти main.py по пути, который у меня используется на десктопе и ему это ясное дело неудаётся. В buildozer.spec: source.dir = . Собираю командой buildozer android debug Что за нахуй, он ебанутый?
Побыстренькому набросал необходимое и запустил compile.py, как сказано в инструкции. И тут выводит ошибку: >from Utilities import compile_module >ModuleNotFoundError: No module named 'Utilities' (Структура папок в прикрепленном изображении) Хотя, если в файле писать тот же from он спокойно предлагает Utilities
Вроде итак подступался и сяк, решил установить pycharm, шоб было прям как в инструкции. И оно заработало.
Я даже хз в чем проблема была. Предполагаю, что из-за настроек в папки .idea.
Собсно, может кто пояснить почему так происходит, и как это исправить, чтобы в VSCode все нормально работало?
Анон, помоги написать программку. Есть 2 XLS таблицы. 2-ая - это дополненная и перемешанная строками 1-ая. Нужно найти все несовпадения 2-ой и 1-ой таблицы и дописать в первую таблицу все несовпадения. Я попробовал решить это через цикл, но я безграмотный хуй. Готов заплатить за всю хуйню, только помогите решить.