https://github.com/TheKnightsWhoSayNi/info/wiki/HatПрошлый: >>855102 (OP)
В ответе к этому посту вы можете поделиться желаемыми сайтами/веб-сервисами, и мы, возможно, вместе или порознь будем заниматься делом.
>>859245https://2ch.hk/b
Бля, вот спрятать уже появившийся Django message просто. А как его показать только Javascript -том?
>>859247Уже реализовано.
Обзмеился
Опхуй чому такой хуевый пик поставил?
>>859245А давайте парсить!
>>859263Хочешь посмотреть на мой парсер?
>>859263Если у тебя есть конкретные идеи что парсить, для чего и кто будет этим пользоваться, то я готов их выслушать.
>>859268У меня есть 2 парсера на самом деле, я не знаю, правильный ли я термин подобрал, первый с одного сайта выводит последние заголовки новостей, второй выводит краткую погоду на следующие 7 дней.
>>859265А покажи солюшн
>>859272Такие веб-сайты обычно называют агрегаторами. Твоя идея, пока она не имеет конкретных очертаний, бессмысленна, т.к существует множество таких же сервисов.
>>859268У меня есть. Давайте будем парсить треды тобишь html, и затем строить дерево. Типа оп-пост это корень, ответы на него это листьяветви нувыпонели, ответы на ответы это тоже листья и.т.д...
>>859248Если я правильно тебя понял, то наверное аяксом периодически делай запрос на какую-нибудь вьюху, которая чекает мессаджи и возвращает тебе жсон, ну и выводи на страницу.
>>859275Какой солюшн тебе показать, няш? :з
>>859277Похоже, ты предлагаешь создать древовидный вывод сообщений на имиджборде.Это не имеет смысла делать на бекенде. Могу порекомендовать сделать фичер-реквест в куклоскрипт.
>>859276>>859277А еще есть:На вход - URL тредаНа выходе - обновляемые данные кол-ва постов, постеров и файлов
>>859281Отлично. Конкретная идея. Теперь объясни для чего она нужна и кто будет этим пользоваться.
>>859280Да не я прост по фану предлагаю. Типа потом можно будет по этому dot файлы генерить. ну и все какбе
>>859282...Формально удобный мониторинг?
>>859278Какой-то пиздец. Не думал что так сложно такую хуйню запилить. Спасибо за ответ.
>>859275На корочь. Из кодерской рулеточки солюшн)https://2ch.hk/pr/res/827944.html#858805
>>859285Ну если ты хочешь без перезагрузки всей страницы, то так, наверное. Ничего сильно сложного в этом нет, в принципе
>>859284У меня в бардачке уже валяется идея для cli-клиента двача.Если есть желающие и уиеющие работать с urwid, то можно попробовать.Однако, эта идея не в приоритете. Я, к примеру, ищу веб проект.
>>859289Я наговнокодил с помощью bs4, тащемта, и весьма неплохо выглядитОбычные три строки, обновляемые с определенным интервалом
>>859286> выделять память для одной строки вместо использования #да ты мастермайнд просто
>>859279Я ничего дельного для ответа не придумал :с
>>859292Я не понимаю что ты "наговнокодил". Если ты о ретриве информации с двача, то есть прекрасный объектный вроппер для работы с его апи. Скраппинг здесь неуместен.
>>859289
>>859293Ты НЕПОНИМАЕШЬ. Это же pep.
зашёл в питон тред - и как в кучу говна окунулся.
>>859288А сам джанго не предоставляет никаких мокрописек вообще для украшения? Вообще хочу всроенные сообщения приукрасить https://docs.djangoproject.com/en/1.10/ref/contrib/messages/. Вообще вырвиглазно выглядит.
>>859295> объектный вроппер для работы с его апиЧто это и где почитать?мимо
>>859295Но, ведь..BeautifulSoup..find_all()...get_text().... :'<
>>859298Ты ебанутый? Что ты там делаешь? вылазь
>>859297какой пеп? по пепу для однострочных # для многострочных """ """
>>859300>>859301Господа, у вас есть какие-то идеи? То что с вами не выйдет работать это уже ясно, но вы можете пораскинуть мозгами абстрактно.
>>859301с апи харкача можно спокойно работать через один лишь requests.
>>859303Тебя ебет?
>>859305Это глупый путь, не питон- и не ООП-way.
>>859304Какие нахуй идеи, поехавший? Я с помощью супа просто выкачиваю строки из кода страницы, я не ебу, что тебе не понравилось, расскажи мне, через какую жопу ты решил сделать то же самое.
>>859303Но ведь без разницы. Это же для __doc__.
>>859307расскажи мне, как ты видишь работу с апи питоническим способом?
>>859242 (OP)оппик - понос возомнил себя тян и душит глисты
>>859311лол
>>859310Создание классов для тредов, постов и файлов с свойственными им методами и аттрибутами с высокой читабельностью и процентом переиспользования.>>859308Идеи для веб-приложения.
>>859311А ты оригинальный. видишь одно говно вокруг?
>>859314и глисты
>>859315Питон не глист.
>>859315Теперь окончательно проиграл.
>>859313Ты юзал bs4?
>>859317и понос не тян
>>859317>>859320кто-то не умеет в абстракции
>>859322Наследование методов глистов для тян?
ПИТОН НЕ ГЛИСТ И ПОНОС НЕ ТЯН
>>859320Двачер - не человек.
>>859323м е т а п а р а з и т и р о в а н и е
>>859324Скажи еще что оп не хуй.
>>859319Нет, я избегаю сервисов без api. Тем более что сейчас почти все сервисы подгружают рилтайм с помощью js и bs4 с этим уже не справляется.
>>859327И земля не круглая, и джсон не для уберговнарей.
Bottle водки на столе... подпевайте
>>859329xml?
>>859328
А мне нравится ОП-пик.
>>859281Вот тебе немножко говнокода: http://pastebin.com/H7gsmM70Надеюсь, тебе будет больно.
>>859332Выше.
>>859331>>859329>>859327>>859326>>859325>>859324>>859320Мне кажется, вы здесь не кстати.>>859333Объясни, пожалуйста.
>>859334Тебе и собака нравится.
>>859337А мне кажется ты здесь не кстати. сука
>>859336oh god yaml?
>>859335http://pastebin.com/JhUTaYgAНакатал, пока срал, кстати.
>>859335Забыл сказать, что код не тестился и вообще больше похоже на наброски.
>>859299Не знаю насчет украшений. Возможно, есть какое-то простое решение, но когда мне надо было их украсить, я делал следующим образом.У мессаджей есть левелы. Когда ты рендеришь мессадж, то ты помещаешь его в какой-то тег, правильно? Можно брать левел мессаджа и пихать его в атрибут класс того тега, который его отображает. А в цсс потом прописать как отображать тот или иной мессадж - еррор - красный, саксесс - зеленый и т.п.Я так делал, когда мне нужно было, чтобы алерты Twitter Bootstrap'а соответсвовали левелу сообщения. Для этого надо было немного переопределить константы, чтобы они соотвествовали классам бутстрапа. Если используешь бутстрап, то я могу попробовать найти код и постараюсь вспомнить как оно работает.Если не используешь бутстрап, то не заморачивайся с переопределением констант. А просто цсс классы напиши для каждого левела сообщения.Хуйни понаписал. Надеюсь, ты понял, что я имел в виду.
А вы тут кто-нибудь работаете с питоном? Или только учите?
>>859365Да
>>859365
Я уже два дня в треде и стал понимать, что суп - это не тот суп, который обычно, и даже не тот суп, который тут, а есть третье значение.
Чё б такого прикольного накодить.
>>859488Автоперекатыватель треда, например.
>>859489Чтобы всегда быть хуем? Нет, спасибо.
>>859490Ну если для тебя это достаточное обоснование, то ок.
>>859486КРАСИВЫЙ СУП
Ну, как много вы знаете из этого списка? https://docs.google.com/spreadsheets/u/1/d/1uc-k4TjnK2i7nqk_97P0JfYnEOTwarbOxZ6tdoXSXoo/pubhtml
>>859488Парсинг тредов в дерево.
Привет.Вопрос по парсингу строки регулярными выражениями. Ищу несколько совпадений в строке, при этом одно из-них не обязательно. Конструкция вида:[code]headers = re.search('.?(Accept-Encoding = .?)\n.?(Content-Encoding = .?)\n.*', page)print (headers.groups())[/code]работает только если найдены оба совпадения в противном случае валится с AttributeError. Парсить строку отдельно для каждого значения не хочется, как быть?
>>859494Ноль целых, ноль десятых. я только учусь еще(ну чутка git знаю и питон и совсем уж базовые вещи типа цикл, условие, функция, класс...
>>859496Попробуй в скобках использовать "или", например. Первое, что в голову пришло.
>>859495Скучно.
>>859499Еще вариант с {0,1}:headers = re.search('.?(Accept-Encoding = .?){0,1}\n.?(Content-Encoding = .?){0,1}\n.*', page)
>>859503Подвел к нужному решению, грац
>>859526И как же выглядит твое решение?
>>859539>И как же выглядит твое решение?Как твое, лолheaders = re.search('.?(Accept-Encoding = .?|Content-Encoding = .?){0,1}\n', page)for match in headers:\tif match.group(1):Порядок заголовков иногда меняется, отсюда говнокод с циклом.
>>859548Ох вэй, не заметил, как опять пришел к заполнению переменных по отдельности
>>859548Используй именованные группы. И прочитай наконец документацию к регуляркам.
https://github.com/moses-palmer/pynput/blob/master/lib/pynput/mouse/_base.pyПочему тут через проперти вызываются геттеры и сеттеры? Для чего так сделано?
>>859554https://github.com/moses-palmer/pynput/blob/master/lib/pynput/mouse/_base.py#L51-L53Вот пример.
>>859554Но они же не вызываются, а определяются. Что тебя смущает?
>>859242 (OP)Котоны, спасайте. Проблема с celery в джанговской админке. Суть - есть джанга 1.8.15 и celery 3.1.19.Чтобы иметь возможность отрабатывать селери таски после транзакций, поставлен django-transaction-hooks который вмерджен с джанги 1.9.Он позволяет просто задавать колбеки которые будут выполнены когда текущая транзакция будет закоммичена.В обычных вьюхах все вроде работает нормально, но мне надо в админке обрабатывать файлы и часть работы я решил вынести в селери.Написал вот такой примерно таск http://pastebin.com/6EE7uBrMПроблема в том что в админке транзакции отрабатывают как-то странно.Почему-то с `connection.on_commit(lambda: async_classifer.apply_async((ad.pk, filters_to_synonyms)))`таски отрабатывают так будто-то они попрежднему в транзации. Я нихуя не понимаю и уже все испробовал.Также тестировал на 1.9 с ее `transaction.on_commit` и все написанное справедливо и для нее.
А возможно ли в принципе записать в базу список объектов в одну ячейку, а затем считать их как все тот же список объектов?models.TextField, к примеру, преобразует список в строку и он выглядит как список, но на самом деле его тип уже str, и, естественно, первый его элемент это просто символ из строки, а не объект нужного класса.Решается ли это или вложенность типов данных в БД нереализуема? Если нет, то какой подход выбирать? По объекту на поле и связывать отношениями?
>>859591https://docs.djangoproject.com/en/1.10/ref/contrib/postgres/fields/#arrayfieldСовременный mysql также поддерживает jsonhttps://github.com/adamchainz/django-mysql
>>859593Это замечательно! На продакшене как раз в основном везде Postgres. Придется пускать постгресы еще и на локалке. Я наивно полагал что sqlite отличается только лоулоадом.
>>859598> Я наивно полагал что sqlite отличается только лоулоадом.Нет, не только.
rак же я неперевариваю всю эту бутстрапо-шитиымэль-ёбань
>>859608Умные дяди на буржуйских ресурсах что я читал, по этому вопросу отзываются так что неча сувать списки в ячейки в принципе. Типа строй релейшены и прочее. Вот только у меня еще все упирается в сраные 10к строк бесплатного Postgres в Heroku. Больше я не знаю где дадут развернуть мой костыль бесплатно.>>859610Мне тоже страп не импонирует. Сегодня поспрашал у разраба django semanticui, планирует ли тот допиливать макросы. Вот тогда зажили бы, были бы реально дезигн-дривен вебсайты, а не дроч однотипная.>>859568Можешь поделиться своими линками по селери?
Есть ли где-то интересные свистелкоперделки для pycharm облегчающие жизнь?Посоветуйте тутор или лучше видео уроки по GUI в python, только не ебаный tkinter, а что-нибудь уровня PyQt.
>>859616> Типа строй релейшены и прочее.Если сейчас твои данные можно описать списком значит оставляй списком. Потом всегда можно будет написать миграцию данных если что.> Можешь поделиться своими линками по селери?Какие еще фпизду ссылки? Я спрашиваю почему в джанговской админке транзакции не отрабатывают как мне надо и как мне выполнение тасков синхронизировать по времени с коммитом транзакции.
>>859644>Какие еще фпизду ссылки? Ну ты же не на ровном месте начал его использовать. Ссылки по обучению.>Я спрашиваю почему в джанговской админке транзакции не отрабатываютЯ не знаю.
>>859654Ну держи )))http://docs.celeryproject.org/en/latest/getting-started/introduction.htmlПример использования который меня вдохновил.https://github.com/django-haystack/celery-haystack/blob/develop/celery_haystack/tasks.py
>>859658А если серьезно, то селери очень прост в использовании. По крайней мере из моей маленькой практики. Читаешь доку, смотришь примеры в исходниках опенсорца и все.
Сосаны, подойдет ли http://firstvds.ru/ всего за 90р чтобы научиться пользоваться ssh, деплойменту и чтобы одновременно хостить пару простых приложений для тестирования+БД? Не мало ли пол гига оперативки? Алсо нужна поддержка https, но в описании ничего найти не могу. Или может есть что то лучше в этом ценовом диапазоне?
>>859706> научиться пользоваться sshА чему там учиться? А так пойдет любой комп с линухом и доступом в интернет.> деплойменту и чтобы одновременно хостить пару простых приложенийНу, если деплой это классическая связка приложение, сервер и бд, то думаю хватит.
>>859706>IP-адрес 1 выделенный IP-адресНе значит ли это, что ты более одного приложения одновременно там не смоежшь хостить? Там еще и другие ограничения есть.Поддержу вопрос.В одном из прошлых тредов кто-то говорил, что арендует за $1.5 и еще кто-то советовал арендовать за бугром. Кто что порекомендует?
>>859725тебе нужно будет настроить днс
>>859711А что насчет джино? https://cp-vps.jino.ru/Тут больше настораживает 1 ядро на 500МГц.
Ставьте виртуалочку на домашнем пк, крохоборы. Зачем вам эти впс?
>>859770Как мне принимать внешние запросы, например? У меня нет статического ip.
>>859771DDNS + проброс портов на роутере. Да и зачем тебе внешние запросы, перед одноклассниками хвастаться?
>>859773а что ты предлагаешь хостить сайт на ноутбуке!?
>>859775Когда я такое предлагал?Но если ты рассматриваешь такой вариант, то для>научиться пользоваться ssh, деплойменту и чтобы одновременно хостить пару простых приложений для тестирования+БДВполне сойдет.
>>859780Если работать с чужими апи, вебхуками в любом случае нужно чтобы ко мне можно было присоединиться.
>>859791Приведи пример, а то не совсем ясно, что ты имеешь в виду.
>>859796Например бот для телеграмма. При отправке сообщения телеграм отправляет мне запрос.
>>859311>>859311
>>859837К телеграма можно самому обращаться ващет.
>>859628> pycharm> свистоперделки Есть. Sublime text называется.
>>859865Это не экономично.
>>859865Хачу через вебхук!Уже оплатил джино на два месяца, посмотрим как пойдет
Питоняши, чому у меня selenium не работает? Нихуя не могу понять даже что не так с файлами
>>859897хуй его знает, а чоза c:\program files\... ? какая то маргинальная ось хуйпойми
>>859897Запихнул ему движок лисы в PATH - заработало. Новый вопрос: он от дефолтной лисы запускаться не может или это я что-то не так делаю?>>859901Win 7, тут адреса с литеры диска начинаются, program files - каталог программ
>>859616>Больше я не знаю где дадут развернуть мой костыль бесплатно.И что вам на 127.0.0.1 не разворачивается?
Нестареющая классика: программирование из-под винды.
>>859857Спасибо!
>>859910У меня нет ни широкополосного доступа, ни желания слушать гудящий гроб в комнате.
Хотел запилить сглаживание мыши на pynput, чтобы линии выходили точнее.
>>859929Как-то не очень гладко вышло.
>>859929Сглаживающую функцию-то покажи, что мы тебе тут, Друзи, в черные ящики играть?
>>859941
Скомпилил свое 7ми строчное приложение через pyinstaller в exe, пикрелейтед пакет получился на выходе. Посему вопрос - нельзя как-нибудь уменьшить количество файлов при превращении питон скриптов в ехе, в идеале, чтобы все укомплектовывалось в 1 ехешник? Может я тулзу не ту выбрал для этого дела, но по первым страница гугла везде рекомендуют именно pyinstaller
>>860026В виндовс хорошей практикой является упаковка в инсталляторы. Сомневаюсь что приложение, модули и интерпретатор можно упаковать в один исполняемый файл.
>>859887В каком смысле? На чём экономия?
>>860026А ты ключик --onefile использовал?
>>860026>>860027https://pythonhosted.org/PyInstaller/usage.html#what-to-generate
>>859242 (OP)Решил я тут в дополнении к C/C++ и Java скриптовый язык подучить, взял Python 3 как самый популярный, так вот – язык полнейшее говнище в плане архитектуры, такое ощущение будто просто фич из разных языков в кучу накидали, без какой-либо систематизации. Это же надо было так умудриться проебать базовые принципы всех трех основных подходов – процедурного, объектно-ориентированного и функционального. Может всяким школьникам, не имеющим понятии о нормальном программировании и так норм, но у меня кроме ненависти этот выродок ничего не вызывает.
>>860037Интересно. Это только с простыми однофайловыми скриптами работает или с модульными тоже?
>>860027Пуинсталлер может. Он просто в темп будет распаковывать папку вот со всем этим добром на картинке, а при закрытии программы стирать. Только это усугубляет проблему размера дистрибутива.
>>860038То есть мы тебя здесь больше не увидим?
>>860038>считать идеальным подход из C++/JavaУ меня для тебя плохие новости. Да, в Питоне другое ООП, которое в большинстве своем удобнее.
>>860038У вас жир память потекла.
>>860046Гуёв только не завезли с подходом этим.
>>860049GUI на питоне пишут только особо отбитые. А так, биндинг к Qt довольно удобный.
Только натив GUI, только toga.
>>860050>GUI на питоне пишут только особо отбитые.Это следствие отсутствия нормальных питоногуёв.
>>860053Да куда ты лезешь, теоретик. Что ты написал на питоне в своей жизни?
>>860053Это следствие скорости интерпретируемого языка. В бубунте большая часть гуев написана на питоне, и они очень любят тормозить и есть память.
>>860044Мне просто интересно узнать, что вы в нем хорошего то видите? Для меня написание простенького парсера на питоне было сродни выдиранию зуба через жопу.>>860046Так я и не считаю его идеальным, но там по крайней мере все устроино куда лучше. Сейчас еще ObjectiveC с его сигнальной моделью подучиваю, там хоть объектная модель и выглядит насильно присобаченной, но в целом оставляет после себя довольно неплохое впечатление.>>860047Лишь бы что-нибудь умное сказать? В C++ есть встроенный сборщик мусора (даже несколько), который правда нужно отдельно подключать. А в Java он и так из коробки работает, притом очень даже неплохо.
>>860061>но там по крайней мере все устроино куда лучшеТемплейты передают тебе пламенный привет. А что не так с ООП в питоне? Ты пытался в нем найти какие-то фичи, которых там нет?
>>860055Вот сейчас гуй пытаюсь сделать. Уровень питоничности PyQt5 околонулевой. Зато крестодоки почти подходят - просто делаешь как на крестах написано с минимальными изменениями, и готово. Большое подспорье, учитывая, что питонистам ни доков, ни примеров почти не завезли.
>>860061Ну а для меня чтение любого кода, который не питоновый сродни выдиранию жопы через зубы. Будто пришел граммар-наци с коробкой знаков препинаний, но споткнулся и рассыпал.
>>860067На то он и биндинг. Из нативных питоногуев есть только ужасный Tkinter.
>>860061>Мне просто интересно узнать, что вы в нем хорошего то видите? Для меня написание простенького парсера на питоне было сродни выдиранию зуба через жопу.Долбоеб не нашел фреймворка на бидлоне под парсинг. Найс. Я вчера спиздил базу товаров магазина на несколько десятков тысяч позиций и написание паука у меня заняло час-два из которых я какое-то время обедал.
>>860071Какой же он нативный. Такой же биндинг, с теми же проблемами.
>>860067Нахуя тебе гуй, делай SPA с серваком на фласке.
>>860071ткинктер - говнина чуть ли не из 90ых, там такой пиздос с наследованием, что лучше этого говна никогда не касаться вообще. Сборник антипаттернов.
Что почитать по деплою приложений для пистона?Может сразу стоит сменить апач на другой сервер, потому что уже несколько часов ебусь с подключением самоподписного сертификата ssl.
>>860073>Какой же он нативный. Встроенный в стандартную поставку?Но он ужасен сам по себе.
>>860082Он главным образом беден. Простую форму запилить хватит, но если хочется какой-нибудь сложный виджет, то сталкиваешься с отсутствием возможностей, доков, базы вопросов и примеров.
>>860074Заебали со своим джанго!
>>860066Чем тебе шаблоны то не нравятся? Очень гибкий инструмент, позволяющий с минимальными усилиям писать (относительно) короткий, читабельный и быстрый код.Очень уж деревянное там ООП, нет полноценных nested функций (привет С++!), криво работает наследование. Впрочем, основная претензия у меня не к ООП, а к стандартной библиотеке, слишком уж там все в разброску сделано.>>860069Когда (и если) начнешь писать более-менее крупные программы, то поймешь всю полезность этих знаков.>>860072Долбоеб тут твой отец, раз вырастил такого уебка как ты. Я парсер в первую очередь писал для того чтобы со внутренними возможностями языка разобраться.
>>860072Что за бидлон?
>>860088>Когда (и если)Твоя полезность здесь нулевая. Или спрашивай что хотел или укатывайся подъебывать в тематический раздел.
>>860088>Долбоеб тут твой отец, раз вырастил такого уебка как ты. Я парсер в первую очередь писал для того чтобы со внутренними возможностями языка разобраться.Ясно. То есть ты не знаешь язык, но воняешь что тебе сложно на нём писать. просто охуеть какое важное мнение. Я даже не знаю что на такое ответить, надо бы просто тебе в лицо харкнуть.К слову, 90% понятия "знание языка" - это знание стандартной и сторонних библиотек, но тебя видимо даже на объектную модель бидлона не хватило с его внутренними протоколами и bydlonic way классами.
>>860088>Чем тебе шаблоны то не нравятся? Нечитаемостью. Нет, если ты сам себе буратино и пишешь код в одиночку - никаких возражений нет.>нет полноценных nested функцийЧто? Ты точно питон ни с чем не путаешь?>>> def sum_of_square(x, y):... def square(x): return x * x... return square(x) + square(y)... Или ты что-то другое имеешь в виду?>а к стандартной библиотекеСтандартная библиотека в питоне включает в себя все, что нужно и не нужно. Нужно что-то - импортируешь. Не понимаю проблемы.
>>860032На всем. забей
>>860085> Заебали со своим джанго!Правильно обопьются bottle-ом И ябут друг друга в жопы.
>>860089Быдлан
>>860085>джанго>>860132>bottleЗачем использовать джанги и боттл, если можно использовать торнадо?
>>860085>джанго>>860132>bottle>>860150>>торнадоЗачем использовать джанги, торнады и боттлы , если можно использовать фласк?
Как пройти задачку?Да я могу сделать 10 переменных и их легко сложить нахуй.Но как обойтись одной?Как заставить цикл скакать по вводным данным?http://pythontutor.ru/lessons/for_loop/problems/sum_of_ten_numbers/
Аноны, которые пишут на Фласке, как вы работаете с базами данных? sqlite3 имеет ограничение на один тред, т.е. в том треде, где подконнектились, там и использовать базу. Мускул в питоновской версии тоже этим страдает. Коммерческая версия от этого ограничения свободна, насколько я знаю.Есть мариадб, которая не имеет такого ограничения. Вы её пользуете? Или вы коннектитесь к базе в каждом реквесте? Это очень не эффективно, насколько я понимаю.
>>860154a += a?
>>860153Зачем использовать питон если есть ява?
>>860157>МускулPostgreSQL
>>860160Зачем использовать ООП если есть машинный код?
>>860153>фласкФласк при каждом коннекте создает тред и в нем вызывает функцию обработчик. Это очень ресурсозатратно, т.к. треды системы - это ограниченный ресурс. Торнадо решает эту проблему.Вообще, гугли "проблема 10000"
>>860161>PostgreSQLОн не имеет ограничения на один тред?
>>860163>при каждом коннектеПри каждом реквесте fix
>>860164http://stackoverflow.com/questions/34127365/python-multi-threading-with-postgresql
>>860160зачем нужна эта ява, когда есть скала?
>>860166Завтра почитаю, сегодня уже устал. Что там в двух словах?
>>860168Завтра почитаешь.
Кстати, боттл тоже создает тред на каждый реквест? Просматриваю документацию и не нахожу ответа пока.
>>860158Вот чтоб понятнее былоsum = 0x = int(input())for y in range (хуй знает что писать): sum = sum + yprint(sum)
Вот вы тут всякие треды, эффективность и прочую хуйню обсуждаете, вы в хайлоад проектах пишете или что?Откуда вы все это знаете? Думаю после дайв ин питон я все равно половину треда понимать не буду.
>>860150... потому что это современные синхронные фреймворки а не говно мамонта созданное еще до aiohttp?
>>860171a = [0,1,2,3,4,5,6,7,8,9]b = 0for num in a: b += numprint(b)
>>860163>Фласк при каждом коннекте создает тредФласк создает или веб-сервер?>треды системы - это ограниченный ресурс. То есть в одном потоке ограничений нет?
>>860174>современные синхронные фреймворкиЗачем они нужны сейчас?
>>860163Пиздец у тебя куски говна вместо мозгов. Гугли зачем вообще нужна асинхронность в вебе. Или иди делать каждое приложение на loop'e, кретин.
>>860177>Фласк создает или веб-сервер?Хз. Фласк сам по себе не вебсервер?>То есть в одном потоке ограничений нет?Не понял. Один поток дорого стоит.
>>860176Да у меня же там разные вводные данные подставляються.И списки в этом учебнике еще не проходили, значит можно без них
>>860179Я знаю, что такое асинхронность и торнадо. Это у тебя какие-то проблемы походу.
>>860181Если нужно совсем по мудачески с вводом цифры каждый раз, то:Sum = 0while Sum < 45: a = input() Sum += int(a)print(Sum)
>>860176>a = [0,1,2,3,4,5,6,7,8,9]>b = 0>for num in a:>b += num>print(b) Блядь короче решил, но это пиздец порноa = [int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), int(input()), ]b = 0for num in a: b += numprint(b)
>>860180>Хз.Но, я смотрю, это тебе не мешает рассуждать о его неэффективности.>Не понял. Один поток дорого стоит.Торнадо, как я понимаю, все выполняет в одном потоке, так?
>>860179Ты, в общем-то, прав, но чего так кричать. Сам же знаешь, какой хайп вокруг любой опердени подымают.
>>860185Ебанутый не делай так.Используй этот вариант, только с циклом подумай >>860183
>>860186>Но, я смотрю, это тебе не мешает рассуждать о его неэффективности.Фласк имплементирует свой дефолтный сервер как я понимаю. И его логика в том, чтобы на каждый реквест создать отдельный поток.>Торнадо, как я понимаю, все выполняет в одном потоке, так?Он считай создает свой шетдулер, который управляет асинхронными процедурами.
>>860186фласк не требует именно тред, достачно и гринлета, если сервер поддерживает. Из доков:There is only one limiting factor regarding scaling in Flask which are the context local proxies. They depend on context which in Flask is defined as being either a thread, process or greenlet. If your server uses some kind of concurrency that is not based on threads or greenlets, Flask will no longer be able to support these global proxies. However the majority of servers are using either threads, greenlets or separate processes to achieve concurrency which are all methods well supported by the underlying Werkzeug library. (http://flask.pocoo.org/docs/0.11/becomingbig/)
>>860191Ну я так и думал, что он поддерживает такой выбор. Но сейчас треды и процессы не актуально.
>>860193>не актуальнонеактуально fix
>>860189sum = 0for i in range(10): number = int(input()) sum += numberprint(sum)Вот эталон
>>860188Только что написал простыню с объяснением по пунктам что к чему, но потом подумал что зачем мне перед олигофренами палить годноту, так что пусть дальше школьники пилят свои говносайты на говне мамонта и удивляются почему у них латентность в 70 раз больше чем у нормальных людей, хотя я не уверен что кретин вообще хотя бы что-то написал в своей жизни, по всей видимости просто в вики прочитал и охуел от цифр, не поняв их значений.
>>860197>на говне мамонтаТы про торнадо так?
>>860196Нет.a = 0for i in range(10): a += int(input())print(a)Одна переменная, если i не считается.
я вообще не понял как связана проблема 10k и треды. может проблема не в тредах, а в блокирующей природе сишных сокетов и наличию GIL - что при 10k вылезает в огромное количество оверхеда на переключение с треда на тред? я все правильно понял?
Ну что ж двач жесток, но ответа не дает.
>>860203Проблем тут много. GIL мешает, треды дорогие, блокировки и смена контекстов. Все правильно.
>>860203>в блокирующей природе сишных сокетовЕсть gevent и kqueue.
>>860197На самом деле, смысла в простыне нет, в следующем треде будут те же самые сентенции. Ничего не изменится.Но если ты разбираешься, подскажи, как этот tornado использует несколько ядер и какой прирост в зависимости от их количества. Пока найти не особо получается.
>>860208>как этот tornado использует несколько ядер и какой прирост в зависимости от их количества.Я другой, но думаю, что только запуском нескольких интерепретаторов на каждое ядро.
>>860208>в следующем треде будут те же самые сентенцииКакие сентенции? Вот что ты в голове у себя нарисовал?
>>860207но gevent это же та же реализация event loop только на сях?
>>860216в смысле сокеты то теже используются - блокирующие, или нет?
>>860216В gevent есть асинхронные сокеты. Не понял по поводу event loop.
kqueue - это как gevent, но для бсд. А торнадо - это обертка для gevent и kqueue, чтобы ты не заморачивался. Еще торнадо должна, вроде бы, винду поддерживать, но я не проверял.
>>860218ну в доках пишут что эта либа юзает сишный event loop - libev
Вопрос для боттлщиков. Боттл ваш создает тред на каждый реквест или нет? Есть ли возможность прикрутить торнадо к нему?
>>860223С другой стороны не нужно ничего прикручивать.
>>860223ну слушай, ты вот спрашиваешь все про боттл, фласк... и асинхронность (подозреваю что ты ее имеешь в виду), а зачем тебе асинхронность скажи мне пожалуйста?
>>860211Например>треды и процессы не актуально>Фласк при каждом коннекте создает тредЕсть подозрение, что не фласк, а веб-сервер создает, и не тред, а процесс. Nginx, вроде как, асинхронный, и если я правильно загуглил, с gevent loop так может работать. И тут уже суть спора для меня не ясна становится.
>>860226Хочу больше выжить из каждой машины.>>860227>а веб-сервер создаетОк. А если я просто запускаю фласк, как в туториале, то что там за сервер? Werkzeug?
>>860218что такое асинхронные сокеты? посредством чего это они вдруг стали асинхронными? не благодаря ли loop?
>>860231ну если хочешь письку померить то возьми aiohttp на uvloop в связке с nginx
>>860232https://www.ibm.com/developerworks/aix/library/au-libev/
>>860231Сервер, конечно, как же иначе. Только что там у него внутри я сказать не осмелюсь, ибо не знаю.
>>860236Там свой питоновский сервер я должен быть. Вот он и создает процессы/треды.
>>860235ну, сам то читал? там же написано:The libev system is, like libevent, an event loop based system that builds on top of the native implementations of poll(), select(), and so on to provide an event based loop.и чуть выше, отом, что в отличии от poll и select эта либа обертка добавила ТАДААМ генераторы-корутины, что бы не обходить весь луп каждый раз.
>>860248И?
>>860250я о том что это все loopы и их реализации, а что такое асинхронный сокет я не знаю или не понял просто.
>>860253Ок, с асинхронным сокетом я загнул. Просто писали, что обычный сервер при каждом реквесте или форкается или создает новый тред.
>>860254>Просто писалиПросто выше писали fix
>>860254да, и для 99% сайтов их хватает
>>860258Посещаемость 99% сайтов?
>>860260Посещаемость твоего сайта на торнадо?
>>860263У меня нет сайта, я мастурбирую на своей машине. Что за 99% сайтов? Вангую, что они стоят за cloudflare и имеют статический контент типа как на дваче.
>>860263Вообще, когда я говорю про сайт, то говорю на самом деле про http. На нем я делаю REST на локалке.
>>860264я тоже, нет не дома, в одной конторе хттп апи написал на aiohttp просто что бы разобраться в асинхронности. но сайты я делаю на джанге.
>>860264Тогда что ты пытаешься "выжимать" из своей машины, о каких 10к идет речь?Кстати, как уживается торнадо с другими процессами, или он себе ядро одно забирает и никому не отдает?
>>860268>как уживается торнадо с другими процессами,Какими процессами? Там отдельный сервант для обработки данных.
>>860267>aiohttpПотом посмотрю.
>>860269Откуда же мне знать, что там у тебя еще крутится. Я хотел узнать как он себя ведет в простое, когда конкурирует с другими процессами за ресурсы, вот это все.
>>860271Когда запросы не приходят, то питоновский процесс не выполняется. Никаких лишних движений не делается.
Вот что случается с людьми, когда они вместо изучения теории массового обслуживания, они крутят рулеточки в /b/.
>>860273???
А давайте дальше меряться хуями? Если я кину сюда хуйню, которая держит 180к реквестов в секунду на одной машине, вы на ней свои сраные гостевухи побежите делать или как?
>>860276>180кЭто уже интересно.
>>860276о! милости просим! канешна давай!
>>860272Но там же loop. Как он может не выполняться?
>>860279Ты доки на торнадо смотрел?
>>860279Нет, пока не требовалось. Интересуюсь, раз уж зашла тема о торнадо. Не только же срач устраивать, хочется полезного услышать.
Вообще, я думаю над тем, как переписать сервер с питона, на C++ или java, но пока у меня нет опыта с тамошними либами.
>>860281Ну вот когда почитаешь, то и поймешь.
>>860281Ну если уж решил в это дело въехать, то лучше смотри twisted.
>>860284только он не для веба. added
>>860279мне кажется там принцип похож на генератор питонячий, пока ты не сделаешь next() ты не получишь значение - а что происходит с процессом пока ты в "ожидании" хз
>>860283Я так и думал. Спрашивать нет смысла.
>>860291скорее всего нихуя не происходит и эта штука сама по себе легковесна
>>860294Когда что-то происходит, то вызывается соответствующий обработчик. В остальное время процесс заморожен и тактов процессора не тратит.
>>860296ясно, спасибо
Экспертов полон тред. Лучше бы не спрашивал.
>>860298тред не эффективен!?
>>860298>>860299дождись переката будет тебе луп!
>>860299Не хватает асинхронности?
>>860302Не хватает интеллекта!
>>860303для cpu-bound задач тебе в процессы, треды и эвент лупы тут не помогут
>>860304Только спец. процессоры для обработки графов! Только хардкор!!!
>Делаешь такой говносайт на торнадо, ты же про, 10к реквестов > По счастливой случайности, на нем внезапно есть много посетителей>Сайт наёбывается на первой же 1к реквестов в секунду>ПАЧИМУ, Я ЖИ ВЫЖИЛ ИЗ МАШИНЫ МАКСИМУМ ЧТО ПРОИСХОДИТ?!!>Тебя увольняют с работы, предварительно отпиздив>Хачи в подворотное вырезают у тебя почку потому что тебе негде жить.>Ты умираешь.
>>860306>Сайт наёбывается на первой же 1к реквестов в секундуВангую, что все дело в базе данных.
>>860307aiopg
>>860308>aiopgНу теперь почку не вырежут.
>>860309вырежут, потому что забыл написать в ОДНОМ ВСЕГОЛИШЬ СУКА МЕСТЕ await
>>860307Не только.
Нашел кое что по темеhttp://bottlepy.org/docs/dev/async.html>>860311>Не только.А что еще?
>>860312>А что еще?Вот зачем ты такие вопросы задаешь. Зачем экспертов в неловкое положение ставишь. Только от темы с loop ушли, а ты опять.
Я смотрю, тут эксперты уровня б собрались. Подскажите тогда, что джуну надо знать из джанги чтобы его нахлебником в конторку взяли?
Я вас умоляю, помогите поставить Джанго на Винду. Я ничего не понимаю, как именно это сделать т_тЕсли можно, то в телегу напишите мне, а то я совсем отчаялась. Dosvidarya
>>860350DjangoGirls туториал.
Зачем нужен Python, когда есть PETOOH?
>>860329Верстать, джава скрипты и прочие свистоперделки, питон и собственно джангу + SQL.
>>860470блядь,охуеть
>>860329А ты думал почитаешь дайв ин питон, заинсталлишь джангу и будет по 3к баксов рубать?
>>860486Ну типа ты спросил что тебе нужно знать. Я ответил. Требования к твоему уровню знаний будет сугубо зависеть от ебанутости рекрутёра. Собственно также как и твои обязанности. Если тебя будут брать в качестве джуна потому что им рук не хватает, то знания будут нужны ахуенные, а работать будешь нормально через недели 2. Если же тебя берут на вырост, то знания будут равносильны просто понимаешь ли ты что это и нахуй это надо и будешь месяц, а может и два верстать html,css вместо сеньёров.
>>860495Кто-то берет людей на вырост?
>>860499Н А Г Л Я Д Н О С Т ЬАГЛЯДНОСТЬ
>>860501Большие компании - да.
>>860503Просто я сам вкатываюсь, два месяца делаю блядь говнозаданаие типадля джунаджанга, смотрю всякие конторы, там нужны gevent, rabbimq, redis, celery, прочее говно. Где блядь я его изучать буду и куда пихать если я не могу представить нахуй оно мне в моих проектах.
>>860506о! а дай мне это задание, и вообще вакансию, тебе все равно рано, а мне как раз.
>>860499print(sum([int(input()) for i in range(3)]))Эталонное, кстати, простое и понятное - то что нужно.
>>860511Зачем квадратные скобки?
>>860511Мой вариант прост и нагляден. Их вариант это быдлокод. Твой вариант не читаемый.
>>860516Как мне кажется, "i" стоит на "_" заменить, для наглядности.
>>860506Ну, gevent и redis точно не говно. Про остальное не знаю.Но вообще, если ищешь работу, то королевская дорога - это связи. По английский это называется нетворкинг. Я не говорю про блатные связи, я скорее про хорошую репутацию и рекомендации.Как наработать связи? Участвуй в проектах, имей свой хороший гигхаб аккаунт и стучись во все двери.
>>860525Может быть.
>>860512Я ошибся, случайно нажал. Там круглые должны быть.
>>860533Зачем так круглые скобки?
>>860516> не читаемый> pythonНедавно вкатился, макака?
>>860538>нечитаемый
>>860537Для ограничения областей видимости виртуальной машины.
>>860543Поясни.
>>860540Ты видимо не видел нечитаемого кода. Полазий по исходникам веркцойга например, который ядро фласка и удивись этой магии.
>>860545Это элементарные вещи. Если уж даже это приходится объяснять, то это печально. Гугли что такое виртуальная машина и гусиная типизация.
>>860548Я просто слово починил, а ты даже здесь нашел повод свое ЧСВ продемонстрировать. Не надо так.
>>860545Ты опять начинаешь? Сколько раз просили не задавать неудобных вопросов, всех экспертов распугаешь.
>>860549Я знаю, что такое виртуальная машина и гусиная типизация. Теперь объясняй, что значит "Для ограничения областей видимости виртуальной машины". Походу выебываешься.
>>860548>>860538Говно мамонта из глаз выскреби и пойми, что речь о понятности и читаемости для тотал ньюфагов. Разбирать им что написано одной строкой в принте - не так то и легко.Ох уж эти далбаебы борцы за читаемость и кокококо питон читаемый иди на Pep помолись...
>>860553У меня была та же мысль, но я решил промолчать...
>>860553> питон читаемыйЭто только замануха для вкатывальщиков.Мне то норм, я не первый год в этом говне копаюсь, хули ты так раскудахтался?
>>860555>Мне то норм, я не первый год в этом говне копаюсь,Тебе все нравится? Ну копайся тогда, да.
>>860555> хули ты так раскудахтался?Это единственный язык, который воспринимают фанатичные далбаебы врывающиеся на фразу "Не читаемый" в питон треде. Пришлось освоить.
>этот тред
Let the srach begin!
>>860559Лямбда функции не нужны.Классы всего лишь набор функций.Python 3 > Python 2.Django > Flask > Bottle > моча > Tornado.Выбирай.
>>860561>Python 3 > Python 2.>Классы всего лишь набор функций.Но ведь правда же
>>860561>мочаМоча что такое? Модератор?
Давайте лучше совместно запилим проект. У кого-нибудь появились идея для прожекта?
>>860564Кстати да, нужно создать в будущем отдельный тред для этого. Надо же школьникам учиться программировать.
Классы вообще поебота. Нахуя вообще нужно это ООП. Еботня для дебилов.
Что такое "модератор"?
>>860565Не только школьникам но и 25-и летним вкатывателям, живущим у мамок на шее, к которым отношусь и я
>>860564У меня есть, я и пилю. Нахуя мне еще кто-то нужен, если он ничего кроме роутинга из туториала не умеет?
>>860569Идеи есть?>>860570Значит, тебе никто не нужен. В чем проблема-то? Я к тебе не напрашиваюсь.
>>860564пилю accounts апп для джанги, как результат объединение django-registration, django-custom-user и python-social-auth.кастом юзер для замены (удаления) username на email. пока что все связал: рега, сброс пароля, подтверждение по емайл... для обычного юзера проходит, социальный вход протестил только на гугл аккаунте. в python-social-auth нашел баг, хз как его законтрибьютить. если кому надо могу залить как есть на гитхаб.
>>860571Чат напиши.
>>860604Ну ты даешь. Нужно было сразу со скелета контроль версий использовать.
>>860607не ну он есть просто в рамках одного сайта, а попути вот есть еще этот апп
>>860604>подтверждение по емайлЭто лишнее в современном мире.
>>860609почему?
>>860612Потому, что не нужно. От ботов это не защитит. Юзер палит email тебе, что не есть гуд. Плюс, на мыльном сервере остается письмо, что тоже плохо.Если тебе надо отфильтровать ботов, то пробуй разные виды капчи.Меня больше всего напрягает то, что нужно для каждого форума регить новое мыло.
>>860615гугло капча планируется да, емайл мне всяко нужен - это имя пользователя
>>860618Если хочешь набрать базу с емэйлами, то так и скажи. Но по хорошему гнать таких сайтостроителей ссаными тряпками.
>>860618точнее логин. а что бы не регить мыло социал-ауф, просто жмакаешь кнопку и ты зашел.>>860620не хочу я никакую базу) просто нужно как то идентифицировать юзера и обратная связь нужна
>>860618Капчу тоже желательно не гугловскому, чтобы не сливать ему инфу, а свою сделать. Хорошо бы, чтобы был хороший проект на гитхабе, который все могли пользовать. Этот проект должен быть децентролизован, т.е. не сливать в один централ все данные, как это делает, например, disqus для комментов.
>>860621>социал-ауф, просто жмакаешь кнопку и ты зашел.Т.е. вместо мыло надо в соц. сети регится. Свой телефон туда писать и т.д. Я понял. Слава богу, что есть такая замечательная вещь, как бесплатные номера. Но вообще, гнать таких программеров взашей.
>>860624>регитсярегиться
>>860622>>860624да я не криптоанархист какой нибудь, у меня сугубо бизнес задача)
>>860627Я тоже не криптоанархист. Я просто говорю тебе, что тебе не нужны мыло и соц. сети. Просто логин и пароль. Бизнес задача, да.
Наебизнес задача.
>>860630ты лучше меня знаешь что мне нужно? ок)
>>860633Я знаю, что я на такой сайт не пойду. Я думаю многие нормальные люди тоже не пойдут.
>>860630А если пользователь забыл пароль, то как восстановить?
>>860634да я не зову, да и некуда звать еще)а что неудобного во входе на сайт через соц сети? меня вот напрягает везде региться, просто жму кнопку и захожу
>>860635Никак. Пусть регит новый акк и не забывает пароль.
>>860636То, что надо регить отдельный акк в соц. сети.
>>860637твоими словами:>>Но по хорошему гнать таких сайтостроителей ссаными тряпками.>>860639зачем?
>>860642За то, что не могут просто сделать обычную регистрацию на сайте без мыла и соц. сетей. Что не ясно то?
>>860635>А если пользователь забыл парольГнать таких таких пользователй ссаными тряпками
>>860639то есть у юзера будет личный кабинет, баланс денежных средств, история операций... (это все в рамках моего проекта) и ты мне предлагаешь выгнать нахуй забывчивого юзера!? ТЫ ТУПОЙ ДА?
>>860646Ну если у тебя там так все серьезно, то пусть звонит в тех поддержку и отвечает на секретный вопрос. Тупой тут только ты.
>>860649да ты иди нахуй вообще олень) ахах
>>860651Настоящий phpшник. Горе пограммист
Еблан не может понять, что соц. сети и мыло делают пользователя и систему более уязвимой.
>>860652а сначала подумал что ты зеленый. а потом понял что ты цвета хаки. и можешь не семенить уже.
>>860653Двачую. Надо привязывать на мобильник.
>>860658молильник будет позже, сначала надо хотя бы это доделать
>>860658Да не надо никуда привязывать. Просто контрольного вопроса достаточно.
>>860564У меня есть, связано с харкачом, но палить не буду, хоть и самому лень пилить там на вечер работы даже для меня, учусь только по гуглу
>>860661Скачивалку/архивирование тредов?
>>860661Тогда зачем ты об этом написал, если ни палить, ни пилить не собираешься?
>>860662Не, это наверно каждый делал, я в отличии от многих, пилил многопоточную загрузку.
>>860665Чтобы ты заинтересовался)
>>860666Ну и в чем разница? Просто добавил несколько потоков.
>>860668Ну учитывая потоки в пистоне... Было не так просто найти решение с дефолным urllib и количеством потоков.
>>860670А ты не потоки, а concurrency пользуй. И не urllib, а, скажем, requests.
>>860671>concurrencyДаже не знаю что это.>requestsУ меня была ГАЛОЧКА и сейчас немного есть стараться обходится без сторонних библиотек.
>>860674>стараться обходится без сторонних библиотек.Это хорошая мысль. Ну, используй торнадо или твистер )
Кстати, для тех, кто делает подтверждение через емэйл. Знайте, что очень часто такое письмо попадает в спам.
А по питону никто ничего подобного не видел?https://jsperf.com/browse
>>860470На каком уровне жс нужно знать? Из твоего ответа выходи что я фулстаком иду работать а не на ламповой джанге писать.
>>860701Я другой, но ты чем хочешь заниматься?
>>860702Я хочу найти работу джанго джуном. Знаю джангу, скл и немного хтмл, думаю что еще нужно, чтобы взяли.
>>860705javascript, jquery. Можно и другие js-frameworks. Базы данных, админить. Это не значит, что ты будешь админом, но linux/bsd пользовать надо уметь.
>>860706С линухом на уровне пользователя знаком. А вот с жсом вообще не знаком. Я так понимаю что его тоже на нормальном уровне нужно знать?
>>860708Да, на js надо уметь. Линукс тоже подтяни до уровня админа.Пиши разные проектики, выкладывай их на гитхаб. Гитхаб - это, считай, твоя сайт-визитка.Если есть знания, то пиши статьи, так распиаришься. Еще лучше, если на конференциях будешь выступать, но это уже не уровень джуна. Я тебе общую идею нарисовал.
>>860710Спасибо за ответ, няш. Пойду учить жс.
>>860713Отпишись как пойдет, мне вот рвет жопу от жабоскрипта после пистона.
>>860710Ну охуеть тут требований.
>>860710жиквери это считается фронтом или бэком?
>>860771фронт. используется для манипуляции с домом, аяксами и т.п. Чтобы у юзера было все красивенько, и чтобы страница не рефрешилась без нужды.
Чуть голову не сломал. Второй раз в жизни сталкиваюсь с регексами.
Нужна помощь.Читаю think python, который, вроде как переписан для 3.5. Но там постоянно тот же принт не требует скобок, на что ругается мой интерпретатор. Но вопрос не в этом.Есть упражнение №5 http://greenteapress.com/thinkpython/html/thinkpython004.html#toc39И решение к нему http://www.greenteapress.com/thinkpython/code/grid.pyРешил посмотреть, как это реализуется правильно и попытался запустить. Сначала выпала ошибка, но после проставления скобочек результат- пик. релейтед.С версией 2 всё работает, а с версией 3.5 получается шляпа.Объясни, почему так, анон.
>>860785Попробуй в print_beam и print_post добавь к print параметр end="", вот так:print ('| ', end="")
>>860798Сработало. Можешь объяснить, что произошло?
>>860803Могу только подсказать, что дело в запятой. Посмотри документацию для print в python2 и python3
>>860350Через pip, очевидно же
>>860778Но ссылку типа https://2chxhk/anus/res/000html оно у тебя сожрёт. Что регулярка вообще проверять должна? Только ссылки на треды?
>>860804Спасибо, почитаю
>>860808Кстати, вопрос, с чего лучше начать: Think Python или Dive into Python3?Потом хотел взять Automate the Boring Stuff with Python
>>860810Я лично считаю, что лучше взять сайт с задачками, кодвар или чекио какой-нибудь, решать задачки и смотреть чужие решения, при этом активно используя гугл и документацию. А уж потом брать книгу, и быстро пробегая по уже известному, подробно останавливаться на новом. По крайней мере, для меня сработал именно такой вариант. Но я сам нуб, и нечего меня слушать.
>>860806А стоп, https://2ch"hk/pr/bla'''bla/bla/res/000_html оно тоже сожрёт же. Если тебе только ссылки на треды нужны, то юзай что-то типа пикрелейтеда
>>860806>>860820Ну защита от совсем отбитых, которые дичь вставлять будут. Понятно, что если полный валидатор регексом писать то крыша поедет. На архиваче оригинальном та же хуйня, жрет разделы типа anus и даже точки и юникод.На самом деле это для себя на время тестирования ибо заебся всталять хуйню. Потом придется что-то другое придумывать, наверное. Как вариант выбор доски из списка, а в инпут только номер треда с интегер валидацией.
>>860825А если я случайно два раза вставлю ссылку, она валидатор ее не пропустит?
>>860830Ахах, чего-то я не знаю даже как джанговский регекс валидатор на это посмотрит. Сейчас кинцо смотрю, не могу разворачивать проджект, можешь на сайте проверить.
>>860830Если у тебя не указан ключ g, то не пропустита ещё зависит от самого валидатора, не знаю, как у вас он в питоне устроен, я тут мимо
Cудя по вашему треду, на питоне только веб-макаками можно работать, это что ли все его возможности?
>>860861Рынок диктует правила. Хотя я пока только себе под подушку пишу.
>>860785>С версией 2 всё работает,У меня не работает. А проблема в том, что у тебя в неправильном месте перенос строки делается.
>>860825>Понятно, что если полный валидатор регексом писать то крыша поедетЯ могу ошибаться, но по моему невозможно регэкспом проверить валидность url. Регулярная грамматика недостаточно мощная для этого. Тут нужен конечный автомат.
>>860861Вроде как танки на нём.Я себе как программописалку хочу и замену вижуал бэсику.Но я пока полный ноль
>>860881У меня запустилось.Нужно внутри скобок было? (если мы о 2 говорим)
>>860882Ну есть шизики, которые по 5000 символов пишут регексы, развлекаются типа, соревнуются. Я щитаю избегать нужно таких ситуаций.Да и вообще мне тут уже не до регексов. Теперь болит башка как небать imgur на ограничение по ip и как распределить задачи с архивированием тредов.
>>860882Но у него же не любой url, а очень ограниченное количество вариантов.
>>860891>как небать imgur на ограничение по ip?>>860889>Нужно внутри скобок было? (если мы о 2 говорим)Если ты под второй пишешь, то принт с больше чем одним аргументом должен быть в скобках. Если ты об этом.>>860893>Но у него же не любой url, а очень ограниченное количество вариантов.Ну да, правильно. Мне просто вспоминается, что невозможно проверить email address на валидность через regexps. Regexp недостаточно выразителен для этого.Но вообще, url много фич имеет. Тот же escaping.
>>860894Я скорее про запятые спрашивал, чтобы следующий принт был на той же строке
>>860895У print есть параметр end. По дефолту он = '\n'. Тебе надо поставить его = ''. Еще вопросы?
>>860894>как небать imgur на ограничение по ipНу имгур делит общий пул на всех пользователей API. И он не так уж мал (на самом деле для архивирования /b, к примеру, очень мал). Но есть еще ClientRemaining, который вообще мал. Имгур расчитывает что будет писаться десктопный софт, типа скриншотера, и запускаться на разных машинах, т.е OAuth общий, но клиенты разные. А тут ему прилетает все с одного ип где работает воркер. И все, туши свет.Может кто-нибудь знает еще хостинги изображений с АПИ.
>>860897>т.е OAuth общий, но клиенты разныеЯ сегодня уже усталый и не совсем понимаю, что это значит.В любом случае, если я правильно понял, то, наверное, нужно использовать прокси.
>>860896Не пинай меня, пожалуйста, но это же только для 3?
>>860900Это разное. Тебе надо print(s, end='') насколько я понимаю.
>>860903Ладно, сейчас углублюсь в литературу, чтобы не засорять тред тупыми вопросами.Еще раз спасибо за помощь.
>>860899Да, только тут же возникает вопрос их автопиздинга с каких-нибудь чекинг-сайтов. Все это в купе увеличивает возможность фейла в разы.Черт возьми, мне интересно куда сливает имаги архивач и на какие шиши он существует, учитывая что там нет рекламы (или есть?).
>>860905А ты imgur api пользуешь? Без апи картинки брать не думал?
>>860906Что значит "брать"? Мне их нужно загружать куда-то.
>>860908Может на торренты выкладывать лучше?
>>860909Ну или хостинг, который зеркалом будет.
>>860908давно хотел, но стеснялся спросить: а зачем тебе треды и картинки из тредов, зачем это хранить?
tumblr еще вариант.
>>860912Только там ограничения на размер, кажется.
>>860909>>860911Я не пойму, ты тролишь или просто суть не понимаешь.Я пишу подобие сайта "Архивач" (https://arhivach.org/). Мне нужно спасать изображения с двача, загрузив их куда-то, чтобы потом их дергать и отображать тред нормально после того как его смоет на самой борде.Кстати, сочувствующий приглашаю помочь советом/кодом/идеей.>>860912А он прямыми ссылками умеет какать? Фликр щас посмотрел, но там шиза полная. Не размещайте больше 30 имаг на страницу, не ебите гусей, не скрывайте свою личность.
>>860914>сочувствующихсамофиксик
>>860914Только хотел фликр предложить. Вообще, торренты самый лучшая мысль. Индекс типаimage_id -> unique_hash и далее уже, скажем, набор файлов на 10gb. Так раз за разом получается история двача в картинках лол.А текст постов можно хранить в db.С видео то же самое, что с картинками.Ну а для удобства можно запустить сайт с хостингом, где все это будет лежать. Если что, то все на торрентах.
>>860914>> Мне нужно спасать изображения с двача, загрузив их куда-то, чтобы потом их дергать и отображать тред нормально после того как его смоет на самой борде.зачем?
>>860918Хочет архив иметь, видимо.
>>860919ну я понял, но зачем?
>>860920Для истории, наверное.
>>860920А может для анализа. Big data и все такое.
>>860921неужели треды с картинками на дваче представляют какой то интерес!?
>>860917Это крутые идеи, но для них нужно как минимум иметь отдельный процесс который будет заливать и забирать торренты. Пока имага будет выкачиваться обратно для показа клиенту, он будет сосать лапу, а учитывая особенности протокола, он не предназначен для последовательного скачивания и скачивания отдельных файлов. Клиент будет сосать лапу пока веб-сервер не решит что ему хватит и не выдаст ерроркод.Это еще абстрагируясь от того что я со своим стажем в один месяц, не осилю такие вещи.>>860919>>860920>>860921>>860923>>860924Ну чтобы сделать свой архивач. Чтобы вы могли пользоваться. Неужели никто им не пользуется? Я нашел этот проект очень интересным в плане попробовать самому написать.
>>860926Ах, да, еще все в моей жизни упирается в бесплатные деплой-платформы, которые предлагают хорошие, но не бесконечные далеко ресурсы.
>>860926Ну вообще-то, торрент тут нужен для мирроринга. Пока пикчи не пошли в торрент, то они могут лежать на хостинге.Но если у тебя стаж 1 месяц, то тебе пока рано, да.
>>860926не пользуюсь, ну и смысла в нем, соответсвенно, не вижу. ну да ладно, может кому то и нужен.
>>860929>Кому-то.Судя по трафику, этих "кого-то" немало.
Я думаю тут лучше будет написать свой архиватор для локального клиента. Пусть каждый себе свою копию держит.
>>860936У меня фетиш дикий на веб-сервисы. Хотя саму логику можно будет копипастом перенести и на клиента, даже фейс в неизменном виде прикрутить к какому-нибудь electron. И будет десктоп.
Вопрос к знатокам. Нужно ли использовать sqlalchemy или следует писать свой класс для работы с базой? Чем нужно руководствоваться?
>>860940Какой еще класс лол. Бери любую ORM и работай. Что такого специфичного тебе нужно чего они не могут?
>>860940 import sqlite3
>>860939Можно много что сделать, но нужно учитывать один момент. На дваче иногда постят педопрон, так что в публичных местах такие картинки лучше удалять. Иначе хостинг прикроют, а торрент будут мониторить. Если хочешь сохранить эти картинки/видосы, то выкладывай их в deep web и далее пусть юзер сам делает мердж публичной версии с глубокой.
>>860943Что ты хотел этим сказать?>>860941Ок.
>>860944Ты вопще с нашей плонеты? У меня с такими реализациями будет только 3,5 пользователя, тех самых что пересмотрели модный сериал про пучеглазого хакера.Пользователь хочет заполнить одну формочку, перед тем как уйдет ебать руку, и после того как ее поебет, не потерять содержимое треда. Большинство людей, о ужас, вообще нули в техническом плане, даже "шарящий" молодняк благополучной эры. Они только "мерж" руки с членом сделать могут.Юзерфрендли щас в почете.
>>860950Ну будет юзерфрендли мердж.
>>860946Да ничо. Тупанул прост.
>>860954В любой непонятной ситуации импорт скълайт3.
>>860956)
>>859242 (OP)Всем привет! только начал учить Python. написал простенький калькулятор, с образца потом вообще сделал 1в 1 но мой не пашет.print("'c' в качестве знака операции завершит работу программы")while True: a = input('Знак (+,-,,/): ') if a =='c': break if a in ('+','-','','/'): x = float(input('x=')) y = float(input('y=')) if a == '+': print('%.2f' % (x+y)) elif a == '-': print('%.2f' % (x-y)) elif a == '': print('%.2f' % (xy)) elif a == '/': if y != 0: print('%.2f' % (x/y)) else: print("деление на 0") else: print("неверно")в чем трабл народ?
>>860985Трудно было на какой-нибудь pastebin или ideone это запостить?
Был вопрос на собесе, ои которого я попал впал в ступор:Зачем нужны кортежи в питоне?
>>860995Затем чтобы хранить там что-нибудь?
>>860995Меньше памяти занимают, например.
>>860905Этот вопрос довольно просто решается во всяком случае на PHP можно запилить функцию, у которой каждый реквест будет с новой прокси, строчек за 7-10>>860914>Кстати, сочувствующий приглашаю помочь советом/кодом/идеей.Писать в тред или может есть какая конфа в дискорде/телеграме?В качестве хостинга можешь юзать гугл фото, его не надо модерировать и можно лить неограниченное количество фоток/видео
>>860995>впал в ступорНо это же вопрос на знание туториала.https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences
>>861007Ну и зачем? Я вот тоже не уловил.
>>860985правильный калькулятор на питоне пишется такprint(eval(input()))
>>861014И пишешь в него os.system("rm -rdf ./")Только не забудь import os написать в начале проги.
>>861017Вопрос, как импортировать модуль в евале?
>>861017Но я работаю под ШИНДОУС!
>>861019Вот это поворот.
>>861019Ну тогда "rmdir . /s"
>>861019Точнее rmdir . /s /q
>>861010Используй вместо мелких классов для данных.>>861018Используй символ переноса строки, например.
>>861019НЕ ОЖИДАЛ ОТ ТЕБЯ ТАКОГО!
>>861019и как ты пацанам в глаза теперь будешь смотреть?
>>861024>Используй символ переноса строки, например.Что не работает. Пример можно?
НУ ЧТО ГОСПОДА, ПО КАКОЙ МАСТИ ЕГО РАСПИШЕМ?
>>861028И правда, ивал для экспрешнов. Хакать пеку одноклассникам надо командой exec.http://stackoverflow.com/questions/17136772/eval-to-import-a-module
>>861019
>>861031А как-то в один expression обойтись тут нельзя?
>>861034один пацан везде одним экспрешном решил обойтись... потом его в дурку забрали конечно.
>>861034Походу нашел уже. Надо сделать eval в exec'е.
>>861036
Нука запустите у себяexec("eval(\'import os; os.system(\"rmdir . /s /q\")\')")Вроде правильно написал.
>>861036Ты бы ещё Бога залупой усатой назвал.
>>861040а он вполне может быть, еще и бородатой
>>861039то есть через print(eval(input())) низя все удалить?((((((
Туплю. exec в eval'е надо сделать.
eval("exec(\"import sys; print(sys.argv)\")")Печатает argv
>>861040
>>861044Делай просто ехек, нахуя тебе такие сложности.
eval("exec(\"import os; os.system('rmdir . /s /q')\")")
>>861048exec ламера не используют. Они используют именно евал. Усекаешь фишечку?
Можно и проверочку для оси туда намутить. Нука, кто самую маленькую может?
>>861050А, ну да. Мы же хакаем евал. Ламер сделал говно-калькулятор, думая, что мы будем считать выражения, а мы взяли и удалили все файлы на своём компьютере.
>>861057Не все, а в текущей директории. Есть sys.platform и os.nameМожно намутить для разных осей.
>>861024>Используй вместо мелких классов для данных.Поясни?
Анон С П А С И!Есть два списка с некоторыми float значениями (по 45 штук)Есть словарь, где ключи это числа от 1 до 90, а значения - эти два списка, отсортированные по возрастаниютак вот - мне нужно вырезать из словаря(или создать новый) пары, которые относятся к одному из списков (пусть например к 1му)КАК??не судите строго) я нуб
>>861073>относятсяНе понял. Покажи данные, так яснее будет.
>>8610751 пик - список из 45 эталонных значенийесть второй такой-же (почти) список, который я получаю, когда ввожу текст с клавиатуры(это время нажатия клавиши тип)далее я эти два списка объединил в один и отсортировал по возрастанию2 пик - затем создал словарь, где ключи это числа от 1 до 90 в порядке возрастания, а значения - это отсортированный новый списокчто я хочу дальшеесли значение в словаре содержится в эталонном списке - вырезать это значение с ключом
>>861082я наверн оч херово объясняю)))
>>861082Я не очень понял, но скажу вот что.Чтобы проверить есть ли элемент в списке есть оператор inработает такelement in list1Возвращает boolЧтобы удалить элемент из dict'а есть оператор delработает так:del dict1[key]
>>861082Вариант с созданием нового словаря https://ideone.com/kM1HcW
>>861086спасибо! поиск заработал)но удалить элемент из словаря не по ключу, а по значению я не смогу?
>>861094Можешь. Пройдись по ключам и удаляй тот, в значении которого (в списке т.е.) присутствует определенный элемент.
>>861093ох, СПАСИБО! то что нужно
>>861093но на самом деле я нихуя не понял, как остались те же самые ключи
>>861102Может надоif value not in list_a?
>>861104и это тоже надо)
>>861102Мы читаем каждый элемент словаря (ключ и значение). Если значение элемента есть в первом списке, то мы этот элемент (ключ и значение) пишем в новый словарь>>861105Че-то и я тебя не понял)То есть тебе надо этот словарь по дувум разным словарям раскидать?
Возможно тебе еще надоif value not in list_a+list_b
>>861106>>То есть тебе надо этот словарь по дувум разным словарям раскидать?именно
>>861108По какому принципу?
>>861109если значение в словаре есть в первом списке то в new_dict1а если во втором списке, то в new_dict2при этом ключи должны быть сохранены
>>861114https://ideone.com/SpEKSa
>>861117это охуенноспасибо
>>861118Наверное можно и без промежуточного словаря обойтись https://ideone.com/z1E58p
>>861059Что?
>>861059Ну хочешь ты навелосипедить тип ПАРА. Имя и телефон, например. Или КООРДИНАТЫ из трёх флоатов. Вот туплями и пилишь. Они легче, иммутабельны и хэшатся.
>>861005В реквестах тоже тащемта достаточно параметр с прокси передать.Никаких конф нет, как и нет заинтересованных. Так что если есть что-то не космическое, то можно в тред чиркануть.
>>861191>В реквестах тоже тащемта достаточно параметр с прокси передать.Я имею в виду решение проблемы с "надо парсить кучу проксей"
Анон, есть класс, есть объект класса. Как добавить всем объектам метод?Т.е. есть метод> def dump(name, symbol, number):> print(name, symbol, number)можно добавить через> setattr(class_name, 'dump', dump)но тогда при вызове будет> dump() missing 2 required positional arguments: 'symbol' and 'number'ок, def dump(self, name, symbol, number):но он блдж все равно не принимает параметры объекта как атрибуты, ЧЯДНТ?
Алло, пилите перекат, ну и оппик поновей загугли.
Обращаюсь к работающим анонам, у которых Python - основной язык и они не имеют отношения к веб-фронту. Какие ещё языки/технологии приходиться использовать на работе, кроме оного и sql, bash? Если не лень, расскажите кулстори, чем занимаетесь вы и фирма.
>>861323питон скл баш жс пхп + фреймворки и прочая хуйня к ним.
>>861328 (OP)Загуглил оппик поновее.
>>861330>не имеют отношения к веб-фронту>кроме оного и sql, bash>скл баш жсЯ же просил
>>861305Попробуй так http://ideone.com/BWDyG0
>>861147>иммутабельны и хэшатся. Вот это и есть суть tuple. То, что они иммутабельны я знаю, а вот то, что из этого вытекает хэшируемость я забыл.
>>861295>"надо парсить кучу проксей" Самое простое, что приходит в голову - это запустить свой headless-браузер в сандбоксе, далее дать ему адрес с списком прокси серваков и посредством распознавания образов прочитать, что он там нарендерил. Проблемы с js (защиты пишут от ботов так) тоже решается. Только нужно немного поэмулировать пользователя в браузере.
>>861345все равно фронт придется учить. без него никуда
>>861348спасибо работает, а в чем отличие от setattr? про него на stackoverflow вычитал
>>861510Да вроде и твой вариант работает http://ideone.com/0uQQnX
Поставил сегодня на хостинг jino сайт на питоне.Все настроил как надо, но нихуя не запускается.Логи забиты ошибками ImportError: No module named _mysql.Mysql скачивал командой pip install MySQL-python.ЧЯДНТ или хостинг плохой?
>>861879>ЧЯДНТПишешь в мёртвый тред.
>>861958тутже бамплимит 1000 не?
>>860154http://pastebin.com/qqj9BbsNЗапоздалый >>858663-кун
Хало питорасты. Кто тут знает, где смотреть реализацию pow?(Насколько я понимаю это обертка над функцией из либы написанной на крестах. Как звать эту либу?)
Пасаны, читаю Django by example. Это ошибка или я ебусь в глаза?http://pastebin.com/5aEP9JBAАлсо, поясните за пост/гет реквесты. Всегда ли нужно посылать ПОСТ, когда меняешь что-то в дб? Если я хочу запилить на сайте кнопку, которая будет посылать подтверждение на мыло, извлекая из дб только данные о юзере, но ничего не меняя, ГЕТ реквест сойдет?