24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
>>859268 У меня есть 2 парсера на самом деле, я не знаю, правильный ли я термин подобрал, первый с одного сайта выводит последние заголовки новостей, второй выводит краткую погоду на следующие 7 дней.
>>859272 Такие веб-сайты обычно называют агрегаторами. Твоя идея, пока она не имеет конкретных очертаний, бессмысленна, т.к существует множество таких же сервисов.
>>859268 У меня есть. Давайте будем парсить треды тобишь html, и затем строить дерево. Типа оп-пост это корень, ответы на него это листьяветви нувыпонели, ответы на ответы это тоже листья и.т.д...
>>859248 Если я правильно тебя понял, то наверное аяксом периодически делай запрос на какую-нибудь вьюху, которая чекает мессаджи и возвращает тебе жсон, ну и выводи на страницу.
>>859277 Похоже, ты предлагаешь создать древовидный вывод сообщений на имиджборде. Это не имеет смысла делать на бекенде. Могу порекомендовать сделать фичер-реквест в куклоскрипт.
>>859284 У меня в бардачке уже валяется идея для cli-клиента двача. Если есть желающие и уиеющие работать с urwid, то можно попробовать. Однако, эта идея не в приоритете. Я, к примеру, ищу веб проект.
>>859292 Я не понимаю что ты "наговнокодил". Если ты о ретриве информации с двача, то есть прекрасный объектный вроппер для работы с его апи. Скраппинг здесь неуместен.
>>859304 Какие нахуй идеи, поехавший? Я с помощью супа просто выкачиваю строки из кода страницы, я не ебу, что тебе не понравилось, расскажи мне, через какую жопу ты решил сделать то же самое.
>>859310 Создание классов для тредов, постов и файлов с свойственными им методами и аттрибутами с высокой читабельностью и процентом переиспользования. >>859308 Идеи для веб-приложения.
>>859299 Не знаю насчет украшений. Возможно, есть какое-то простое решение, но когда мне надо было их украсить, я делал следующим образом.
У мессаджей есть левелы. Когда ты рендеришь мессадж, то ты помещаешь его в какой-то тег, правильно? Можно брать левел мессаджа и пихать его в атрибут класс того тега, который его отображает. А в цсс потом прописать как отображать тот или иной мессадж - еррор - красный, саксесс - зеленый и т.п.
Я так делал, когда мне нужно было, чтобы алерты Twitter Bootstrap'а соответсвовали левелу сообщения. Для этого надо было немного переопределить константы, чтобы они соотвествовали классам бутстрапа. Если используешь бутстрап, то я могу попробовать найти код и постараюсь вспомнить как оно работает.
Если не используешь бутстрап, то не заморачивайся с переопределением констант. А просто цсс классы напиши для каждого левела сообщения.
Хуйни понаписал. Надеюсь, ты понял, что я имел в виду.
Привет. Вопрос по парсингу строки регулярными выражениями. Ищу несколько совпадений в строке, при этом одно из-них не обязательно. Конструкция вида: [code] headers = re.search('.?(Accept-Encoding = .?)\n.?(Content-Encoding = .?)\n.*', page) print (headers.groups()) [/code] работает только если найдены оба совпадения в противном случае валится с AttributeError. Парсить строку отдельно для каждого значения не хочется, как быть?
>>859539 >И как же выглядит твое решение? Как твое, лол headers = re.search('.?(Accept-Encoding = .?|Content-Encoding = .?){0,1}\n', page) for match in headers: \tif match.group(1): Порядок заголовков иногда меняется, отсюда говнокод с циклом.
>>859242 (OP) Котоны, спасайте. Проблема с celery в джанговской админке. Суть - есть джанга 1.8.15 и celery 3.1.19. Чтобы иметь возможность отрабатывать селери таски после транзакций, поставлен django-transaction-hooks который вмерджен с джанги 1.9. Он позволяет просто задавать колбеки которые будут выполнены когда текущая транзакция будет закоммичена.
В обычных вьюхах все вроде работает нормально, но мне надо в админке обрабатывать файлы и часть работы я решил вынести в селери.
Проблема в том что в админке транзакции отрабатывают как-то странно.
Почему-то с `connection.on_commit(lambda: async_classifer.apply_async((ad.pk, filters_to_synonyms)))` таски отрабатывают так будто-то они попрежднему в транзации. Я нихуя не понимаю и уже все испробовал.
Также тестировал на 1.9 с ее `transaction.on_commit` и все написанное справедливо и для нее.
А возможно ли в принципе записать в базу список объектов в одну ячейку, а затем считать их как все тот же список объектов? models.TextField, к примеру, преобразует список в строку и он выглядит как список, но на самом деле его тип уже str, и, естественно, первый его элемент это просто символ из строки, а не объект нужного класса. Решается ли это или вложенность типов данных в БД нереализуема? Если нет, то какой подход выбирать? По объекту на поле и связывать отношениями?
>>859593 Это замечательно! На продакшене как раз в основном везде Postgres. Придется пускать постгресы еще и на локалке. Я наивно полагал что sqlite отличается только лоулоадом.
>>859608 Умные дяди на буржуйских ресурсах что я читал, по этому вопросу отзываются так что неча сувать списки в ячейки в принципе. Типа строй релейшены и прочее. Вот только у меня еще все упирается в сраные 10к строк бесплатного Postgres в Heroku. Больше я не знаю где дадут развернуть мой костыль бесплатно. >>859610 Мне тоже страп не импонирует. Сегодня поспрашал у разраба django semanticui, планирует ли тот допиливать макросы. Вот тогда зажили бы, были бы реально дезигн-дривен вебсайты, а не дроч однотипная. >>859568 Можешь поделиться своими линками по селери?
> Типа строй релейшены и прочее. Если сейчас твои данные можно описать списком значит оставляй списком. Потом всегда можно будет написать миграцию данных если что.
> Можешь поделиться своими линками по селери? Какие еще фпизду ссылки? Я спрашиваю почему в джанговской админке транзакции не отрабатывают как мне надо и как мне выполнение тасков синхронизировать по времени с коммитом транзакции.
>>859644 >Какие еще фпизду ссылки? Ну ты же не на ровном месте начал его использовать. Ссылки по обучению. >Я спрашиваю почему в джанговской админке транзакции не отрабатывают Я не знаю.
>>859658 А если серьезно, то селери очень прост в использовании. По крайней мере из моей маленькой практики. Читаешь доку, смотришь примеры в исходниках опенсорца и все.
Сосаны, подойдет ли http://firstvds.ru/ всего за 90р чтобы научиться пользоваться ssh, деплойменту и чтобы одновременно хостить пару простых приложений для тестирования+БД? Не мало ли пол гига оперативки? Алсо нужна поддержка https, но в описании ничего найти не могу. Или может есть что то лучше в этом ценовом диапазоне?
>>859706 >IP-адрес 1 выделенный IP-адрес Не значит ли это, что ты более одного приложения одновременно там не смоежшь хостить? Там еще и другие ограничения есть.
Поддержу вопрос. В одном из прошлых тредов кто-то говорил, что арендует за $1.5 и еще кто-то советовал арендовать за бугром. Кто что порекомендует?
>>859775 Когда я такое предлагал? Но если ты рассматриваешь такой вариант, то для >научиться пользоваться ssh, деплойменту и чтобы одновременно хостить пару простых приложений для тестирования+БД Вполне сойдет.
>>859897 Запихнул ему движок лисы в PATH - заработало. Новый вопрос: он от дефолтной лисы запускаться не может или это я что-то не так делаю? >>859901 Win 7, тут адреса с литеры диска начинаются, program files - каталог программ
Скомпилил свое 7ми строчное приложение через pyinstaller в exe, пикрелейтед пакет получился на выходе. Посему вопрос - нельзя как-нибудь уменьшить количество файлов при превращении питон скриптов в ехе, в идеале, чтобы все укомплектовывалось в 1 ехешник? Может я тулзу не ту выбрал для этого дела, но по первым страница гугла везде рекомендуют именно pyinstaller
>>860026 В виндовс хорошей практикой является упаковка в инсталляторы. Сомневаюсь что приложение, модули и интерпретатор можно упаковать в один исполняемый файл.
Решил я тут в дополнении к C/C++ и Java скриптовый язык подучить, взял Python 3 как самый популярный, так вот – язык полнейшее говнище в плане архитектуры, такое ощущение будто просто фич из разных языков в кучу накидали, без какой-либо систематизации. Это же надо было так умудриться проебать базовые принципы всех трех основных подходов – процедурного, объектно-ориентированного и функционального. Может всяким школьникам, не имеющим понятии о нормальном программировании и так норм, но у меня кроме ненависти этот выродок ничего не вызывает.
>>860027 Пуинсталлер может. Он просто в темп будет распаковывать папку вот со всем этим добром на картинке, а при закрытии программы стирать. Только это усугубляет проблему размера дистрибутива.
>>860044 Мне просто интересно узнать, что вы в нем хорошего то видите? Для меня написание простенького парсера на питоне было сродни выдиранию зуба через жопу.
>>860046 Так я и не считаю его идеальным, но там по крайней мере все устроино куда лучше. Сейчас еще ObjectiveC с его сигнальной моделью подучиваю, там хоть объектная модель и выглядит насильно присобаченной, но в целом оставляет после себя довольно неплохое впечатление.
>>860047 Лишь бы что-нибудь умное сказать? В C++ есть встроенный сборщик мусора (даже несколько), который правда нужно отдельно подключать. А в Java он и так из коробки работает, притом очень даже неплохо.
>>860061 >но там по крайней мере все устроино куда лучше Темплейты передают тебе пламенный привет. А что не так с ООП в питоне? Ты пытался в нем найти какие-то фичи, которых там нет?
>>860055 Вот сейчас гуй пытаюсь сделать. Уровень питоничности PyQt5 околонулевой. Зато крестодоки почти подходят - просто делаешь как на крестах написано с минимальными изменениями, и готово. Большое подспорье, учитывая, что питонистам ни доков, ни примеров почти не завезли.
>>860061 Ну а для меня чтение любого кода, который не питоновый сродни выдиранию жопы через зубы. Будто пришел граммар-наци с коробкой знаков препинаний, но споткнулся и рассыпал.
>>860061 >Мне просто интересно узнать, что вы в нем хорошего то видите? Для меня написание простенького парсера на питоне было сродни выдиранию зуба через жопу. Долбоеб не нашел фреймворка на бидлоне под парсинг. Найс. Я вчера спиздил базу товаров магазина на несколько десятков тысяч позиций и написание паука у меня заняло час-два из которых я какое-то время обедал.
>>860071 ткинктер - говнина чуть ли не из 90ых, там такой пиздос с наследованием, что лучше этого говна никогда не касаться вообще. Сборник антипаттернов.
Что почитать по деплою приложений для пистона? Может сразу стоит сменить апач на другой сервер, потому что уже несколько часов ебусь с подключением самоподписного сертификата ssl.
>>860082 Он главным образом беден. Простую форму запилить хватит, но если хочется какой-нибудь сложный виджет, то сталкиваешься с отсутствием возможностей, доков, базы вопросов и примеров.
>>860066 Чем тебе шаблоны то не нравятся? Очень гибкий инструмент, позволяющий с минимальными усилиям писать (относительно) короткий, читабельный и быстрый код. Очень уж деревянное там ООП, нет полноценных nested функций (привет С++!), криво работает наследование. Впрочем, основная претензия у меня не к ООП, а к стандартной библиотеке, слишком уж там все в разброску сделано.
>>860069 Когда (и если) начнешь писать более-менее крупные программы, то поймешь всю полезность этих знаков.
>>860072 Долбоеб тут твой отец, раз вырастил такого уебка как ты. Я парсер в первую очередь писал для того чтобы со внутренними возможностями языка разобраться.
>>860088 >Долбоеб тут твой отец, раз вырастил такого уебка как ты. Я парсер в первую очередь писал для того чтобы со внутренними возможностями языка разобраться. Ясно. То есть ты не знаешь язык, но воняешь что тебе сложно на нём писать. просто охуеть какое важное мнение. Я даже не знаю что на такое ответить, надо бы просто тебе в лицо харкнуть. К слову, 90% понятия "знание языка" - это знание стандартной и сторонних библиотек, но тебя видимо даже на объектную модель бидлона не хватило с его внутренними протоколами и bydlonic way классами.
>>860088 >Чем тебе шаблоны то не нравятся? Нечитаемостью. Нет, если ты сам себе буратино и пишешь код в одиночку - никаких возражений нет. >нет полноценных nested функций Что? Ты точно питон ни с чем не путаешь? >>> def sum_of_square(x, y): ... def square(x): return x * x ... return square(x) + square(y) ... Или ты что-то другое имеешь в виду? >а к стандартной библиотеке Стандартная библиотека в питоне включает в себя все, что нужно и не нужно. Нужно что-то - импортируешь. Не понимаю проблемы.
Аноны, которые пишут на Фласке, как вы работаете с базами данных? sqlite3 имеет ограничение на один тред, т.е. в том треде, где подконнектились, там и использовать базу. Мускул в питоновской версии тоже этим страдает. Коммерческая версия от этого ограничения свободна, насколько я знаю. Есть мариадб, которая не имеет такого ограничения. Вы её пользуете? Или вы коннектитесь к базе в каждом реквесте? Это очень не эффективно, насколько я понимаю.
>>860153 >фласк Фласк при каждом коннекте создает тред и в нем вызывает функцию обработчик. Это очень ресурсозатратно, т.к. треды системы - это ограниченный ресурс. Торнадо решает эту проблему. Вообще, гугли "проблема 10000"
Вот вы тут всякие треды, эффективность и прочую хуйню обсуждаете, вы в хайлоад проектах пишете или что? Откуда вы все это знаете? Думаю после дайв ин питон я все равно половину треда понимать не буду.
>>860163 >Фласк при каждом коннекте создает тред Фласк создает или веб-сервер? >треды системы - это ограниченный ресурс. То есть в одном потоке ограничений нет?
>>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 = 0 for num in a: b += num print(b)
>>860180 >Хз. Но, я смотрю, это тебе не мешает рассуждать о его неэффективности. >Не понял. Один поток дорого стоит. Торнадо, как я понимаю, все выполняет в одном потоке, так?
>>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/)
>>860188 Только что написал простыню с объяснением по пунктам что к чему, но потом подумал что зачем мне перед олигофренами палить годноту, так что пусть дальше школьники пилят свои говносайты на говне мамонта и удивляются почему у них латентность в 70 раз больше чем у нормальных людей, хотя я не уверен что кретин вообще хотя бы что-то написал в своей жизни, по всей видимости просто в вики прочитал и охуел от цифр, не поняв их значений.
я вообще не понял как связана проблема 10k и треды. может проблема не в тредах, а в блокирующей природе сишных сокетов и наличию GIL - что при 10k вылезает в огромное количество оверхеда на переключение с треда на тред? я все правильно понял?
>>860197 На самом деле, смысла в простыне нет, в следующем треде будут те же самые сентенции. Ничего не изменится. Но если ты разбираешься, подскажи, как этот tornado использует несколько ядер и какой прирост в зависимости от их количества. Пока найти не особо получается.
>>860208 >как этот tornado использует несколько ядер и какой прирост в зависимости от их количества. Я другой, но думаю, что только запуском нескольких интерепретаторов на каждое ядро.
kqueue - это как gevent, но для бсд. А торнадо - это обертка для gevent и kqueue, чтобы ты не заморачивался. Еще торнадо должна, вроде бы, винду поддерживать, но я не проверял.
>>860223 ну слушай, ты вот спрашиваешь все про боттл, фласк... и асинхронность (подозреваю что ты ее имеешь в виду), а зачем тебе асинхронность скажи мне пожалуйста?
>>860211 Например >треды и процессы не актуально >Фласк при каждом коннекте создает тред Есть подозрение, что не фласк, а веб-сервер создает, и не тред, а процесс. Nginx, вроде как, асинхронный, и если я правильно загуглил, с gevent loop так может работать. И тут уже суть спора для меня не ясна становится.
>>860226 Хочу больше выжить из каждой машины. >>860227 >а веб-сервер создает Ок. А если я просто запускаю фласк, как в туториале, то что там за сервер? Werkzeug?
>>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 эта либа обертка добавила ТАДААМ генераторы-корутины, что бы не обходить весь луп каждый раз.
>>860263 У меня нет сайта, я мастурбирую на своей машине. Что за 99% сайтов? Вангую, что они стоят за cloudflare и имеют статический контент типа как на дваче.
>>860264 Тогда что ты пытаешься "выжимать" из своей машины, о каких 10к идет речь? Кстати, как уживается торнадо с другими процессами, или он себе ядро одно забирает и никому не отдает?
>>860269 Откуда же мне знать, что там у тебя еще крутится. Я хотел узнать как он себя ведет в простое, когда конкурирует с другими процессами за ресурсы, вот это все.
А давайте дальше меряться хуями? Если я кину сюда хуйню, которая держит 180к реквестов в секунду на одной машине, вы на ней свои сраные гостевухи побежите делать или как?
>>860279 мне кажется там принцип похож на генератор питонячий, пока ты не сделаешь next() ты не получишь значение - а что происходит с процессом пока ты в "ожидании" хз
>Делаешь такой говносайт на торнадо, ты же про, 10к реквестов > По счастливой случайности, на нем внезапно есть много посетителей >Сайт наёбывается на первой же 1к реквестов в секунду >ПАЧИМУ, Я ЖИ ВЫЖИЛ ИЗ МАШИНЫ МАКСИМУМ ЧТО ПРОИСХОДИТ?!! >Тебя увольняют с работы, предварительно отпиздив >Хачи в подворотное вырезают у тебя почку потому что тебе негде жить. >Ты умираешь.
Я вас умоляю, помогите поставить Джанго на Винду. Я ничего не понимаю, как именно это сделать т_т Если можно, то в телегу напишите мне, а то я совсем отчаялась. Dosvidarya
>>860486 Ну типа ты спросил что тебе нужно знать. Я ответил. Требования к твоему уровню знаний будет сугубо зависеть от ебанутости рекрутёра. Собственно также как и твои обязанности. Если тебя будут брать в качестве джуна потому что им рук не хватает, то знания будут нужны ахуенные, а работать будешь нормально через недели 2. Если же тебя берут на вырост, то знания будут равносильны просто понимаешь ли ты что это и нахуй это надо и будешь месяц, а может и два верстать html,css вместо сеньёров.
>>860503 Просто я сам вкатываюсь, два месяца делаю блядь говнозаданаие типадля джунаджанга, смотрю всякие конторы, там нужны gevent, rabbimq, redis, celery, прочее говно. Где блядь я его изучать буду и куда пихать если я не могу представить нахуй оно мне в моих проектах.
>>860506 Ну, gevent и redis точно не говно. Про остальное не знаю. Но вообще, если ищешь работу, то королевская дорога - это связи. По английский это называется нетворкинг. Я не говорю про блатные связи, я скорее про хорошую репутацию и рекомендации.
Как наработать связи? Участвуй в проектах, имей свой хороший гигхаб аккаунт и стучись во все двери.
>>860549 Я знаю, что такое виртуальная машина и гусиная типизация. Теперь объясняй, что значит "Для ограничения областей видимости виртуальной машины". Походу выебываешься.
Говно мамонта из глаз выскреби и пойми, что речь о понятности и читаемости для тотал ньюфагов. Разбирать им что написано одной строкой в принте - не так то и легко.
Ох уж эти далбаебы борцы за читаемость и кокококо питон читаемый иди на Pep помолись...
>>860555 > хули ты так раскудахтался? Это единственный язык, который воспринимают фанатичные далбаебы врывающиеся на фразу "Не читаемый" в питон треде. Пришлось освоить.
>>860564 пилю accounts апп для джанги, как результат объединение django-registration, django-custom-user и python-social-auth. кастом юзер для замены (удаления) username на email. пока что все связал: рега, сброс пароля, подтверждение по емайл... для обычного юзера проходит, социальный вход протестил только на гугл аккаунте. в python-social-auth нашел баг, хз как его законтрибьютить. если кому надо могу залить как есть на гитхаб.
>>860612 Потому, что не нужно. От ботов это не защитит. Юзер палит email тебе, что не есть гуд. Плюс, на мыльном сервере остается письмо, что тоже плохо.
Если тебе надо отфильтровать ботов, то пробуй разные виды капчи.
Меня больше всего напрягает то, что нужно для каждого форума регить новое мыло.
>>860618 точнее логин. а что бы не регить мыло социал-ауф, просто жмакаешь кнопку и ты зашел. >>860620 не хочу я никакую базу) просто нужно как то идентифицировать юзера и обратная связь нужна
>>860618 Капчу тоже желательно не гугловскому, чтобы не сливать ему инфу, а свою сделать. Хорошо бы, чтобы был хороший проект на гитхабе, который все могли пользовать. Этот проект должен быть децентролизован, т.е. не сливать в один централ все данные, как это делает, например, disqus для комментов.
>>860621 >социал-ауф, просто жмакаешь кнопку и ты зашел. Т.е. вместо мыло надо в соц. сети регится. Свой телефон туда писать и т.д. Я понял. Слава богу, что есть такая замечательная вещь, как бесплатные номера. Но вообще, гнать таких программеров взашей.
>>860634 да я не зову, да и некуда звать еще) а что неудобного во входе на сайт через соц сети? меня вот напрягает везде региться, просто жму кнопку и захожу
>>860639 то есть у юзера будет личный кабинет, баланс денежных средств, история операций... (это все в рамках моего проекта) и ты мне предлагаешь выгнать нахуй забывчивого юзера!? ТЫ ТУПОЙ ДА?
>>860705 javascript, jquery. Можно и другие js-frameworks. Базы данных, админить. Это не значит, что ты будешь админом, но linux/bsd пользовать надо уметь.
>>860708 Да, на js надо уметь. Линукс тоже подтяни до уровня админа. Пиши разные проектики, выкладывай их на гитхаб. Гитхаб - это, считай, твоя сайт-визитка. Если есть знания, то пиши статьи, так распиаришься. Еще лучше, если на конференциях будешь выступать, но это уже не уровень джуна. Я тебе общую идею нарисовал.
Читаю think python, который, вроде как переписан для 3.5. Но там постоянно тот же принт не требует скобок, на что ругается мой интерпретатор. Но вопрос не в этом.
>>860810 Я лично считаю, что лучше взять сайт с задачками, кодвар или чекио какой-нибудь, решать задачки и смотреть чужие решения, при этом активно используя гугл и документацию. А уж потом брать книгу, и быстро пробегая по уже известному, подробно останавливаться на новом. По крайней мере, для меня сработал именно такой вариант. Но я сам нуб, и нечего меня слушать.
>>860806 А стоп, https://2ch"hk/pr/bla'''bla/bla/res/000_html оно тоже сожрёт же. Если тебе только ссылки на треды нужны, то юзай что-то типа пикрелейтеда
Ну защита от совсем отбитых, которые дичь вставлять будут. Понятно, что если полный валидатор регексом писать то крыша поедет. На архиваче оригинальном та же хуйня, жрет разделы типа anus и даже точки и юникод. На самом деле это для себя на время тестирования ибо заебся всталять хуйню. Потом придется что-то другое придумывать, наверное. Как вариант выбор доски из списка, а в инпут только номер треда с интегер валидацией.
>>860830 Ахах, чего-то я не знаю даже как джанговский регекс валидатор на это посмотрит. Сейчас кинцо смотрю, не могу разворачивать проджект, можешь на сайте проверить.
>>860825 >Понятно, что если полный валидатор регексом писать то крыша поедет Я могу ошибаться, но по моему невозможно регэкспом проверить валидность url. Регулярная грамматика недостаточно мощная для этого. Тут нужен конечный автомат.
>>860882 Ну есть шизики, которые по 5000 символов пишут регексы, развлекаются типа, соревнуются. Я щитаю избегать нужно таких ситуаций. Да и вообще мне тут уже не до регексов. Теперь болит башка как небать imgur на ограничение по ip и как распределить задачи с архивированием тредов.
>>860891 >как небать imgur на ограничение по ip ? >>860889 >Нужно внутри скобок было? (если мы о 2 говорим) Если ты под второй пишешь, то принт с больше чем одним аргументом должен быть в скобках. Если ты об этом. >>860893 >Но у него же не любой url, а очень ограниченное количество вариантов. Ну да, правильно. Мне просто вспоминается, что невозможно проверить email address на валидность через regexps. Regexp недостаточно выразителен для этого. Но вообще, url много фич имеет. Тот же escaping.
>>860894 >как небать imgur на ограничение по ip Ну имгур делит общий пул на всех пользователей API. И он не так уж мал (на самом деле для архивирования /b, к примеру, очень мал). Но есть еще ClientRemaining, который вообще мал. Имгур расчитывает что будет писаться десктопный софт, типа скриншотера, и запускаться на разных машинах, т.е OAuth общий, но клиенты разные. А тут ему прилетает все с одного ип где работает воркер. И все, туши свет. Может кто-нибудь знает еще хостинги изображений с АПИ.
>>860897 >т.е OAuth общий, но клиенты разные Я сегодня уже усталый и не совсем понимаю, что это значит. В любом случае, если я правильно понял, то, наверное, нужно использовать прокси.
>>860899 Да, только тут же возникает вопрос их автопиздинга с каких-нибудь чекинг-сайтов. Все это в купе увеличивает возможность фейла в разы. Черт возьми, мне интересно куда сливает имаги архивач и на какие шиши он существует, учитывая что там нет рекламы (или есть?).
>>860909 >>860911 Я не пойму, ты тролишь или просто суть не понимаешь. Я пишу подобие сайта "Архивач" (https://arhivach.org/). Мне нужно спасать изображения с двача, загрузив их куда-то, чтобы потом их дергать и отображать тред нормально после того как его смоет на самой борде. Кстати, сочувствующий приглашаю помочь советом/кодом/идеей. >>860912 А он прямыми ссылками умеет какать? Фликр щас посмотрел, но там шиза полная. Не размещайте больше 30 имаг на страницу, не ебите гусей, не скрывайте свою личность.
>>860914 Только хотел фликр предложить. Вообще, торренты самый лучшая мысль. Индекс типа image_id -> unique_hash и далее уже, скажем, набор файлов на 10gb. Так раз за разом получается история двача в картинках лол. А текст постов можно хранить в db. С видео то же самое, что с картинками.
Ну а для удобства можно запустить сайт с хостингом, где все это будет лежать. Если что, то все на торрентах.
>>860914 >> Мне нужно спасать изображения с двача, загрузив их куда-то, чтобы потом их дергать и отображать тред нормально после того как его смоет на самой борде. зачем?
>>860917 Это крутые идеи, но для них нужно как минимум иметь отдельный процесс который будет заливать и забирать торренты. Пока имага будет выкачиваться обратно для показа клиенту, он будет сосать лапу, а учитывая особенности протокола, он не предназначен для последовательного скачивания и скачивания отдельных файлов. Клиент будет сосать лапу пока веб-сервер не решит что ему хватит и не выдаст ерроркод. Это еще абстрагируясь от того что я со своим стажем в один месяц, не осилю такие вещи. >>860919 >>860920 >>860921 >>860923 >>860924 Ну чтобы сделать свой архивач. Чтобы вы могли пользоваться. Неужели никто им не пользуется? Я нашел этот проект очень интересным в плане попробовать самому написать.
>>860926 Ну вообще-то, торрент тут нужен для мирроринга. Пока пикчи не пошли в торрент, то они могут лежать на хостинге. Но если у тебя стаж 1 месяц, то тебе пока рано, да.
>>860936 У меня фетиш дикий на веб-сервисы. Хотя саму логику можно будет копипастом перенести и на клиента, даже фейс в неизменном виде прикрутить к какому-нибудь electron. И будет десктоп.
>>860939 Можно много что сделать, но нужно учитывать один момент. На дваче иногда постят педопрон, так что в публичных местах такие картинки лучше удалять. Иначе хостинг прикроют, а торрент будут мониторить. Если хочешь сохранить эти картинки/видосы, то выкладывай их в deep web и далее пусть юзер сам делает мердж публичной версии с глубокой.
>>860944 Ты вопще с нашей плонеты? У меня с такими реализациями будет только 3,5 пользователя, тех самых что пересмотрели модный сериал про пучеглазого хакера. Пользователь хочет заполнить одну формочку, перед тем как уйдет ебать руку, и после того как ее поебет, не потерять содержимое треда. Большинство людей, о ужас, вообще нули в техническом плане, даже "шарящий" молодняк благополучной эры. Они только "мерж" руки с членом сделать могут. Юзерфрендли щас в почете.
>>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("неверно") в чем трабл народ?
>>860905 Этот вопрос довольно просто решается во всяком случае на PHP можно запилить функцию, у которой каждый реквест будет с новой прокси, строчек за 7-10 >>860914 >Кстати, сочувствующий приглашаю помочь советом/кодом/идеей. Писать в тред или может есть какая конфа в дискорде/телеграме? В качестве хостинга можешь юзать гугл фото, его не надо модерировать и можно лить неограниченное количество фоток/видео
>>861050 А, ну да. Мы же хакаем евал. Ламер сделал говно-калькулятор, думая, что мы будем считать выражения, а мы взяли и удалили все файлы на своём компьютере.
Анон С П А С И! Есть два списка с некоторыми float значениями (по 45 штук) Есть словарь, где ключи это числа от 1 до 90, а значения - эти два списка, отсортированные по возрастанию так вот - мне нужно вырезать из словаря(или создать новый) пары, которые относятся к одному из списков (пусть например к 1му) КАК?? не судите строго) я нуб
>>861075 1 пик - список из 45 эталонных значений есть второй такой-же (почти) список, который я получаю, когда ввожу текст с клавиатуры(это время нажатия клавиши тип) далее я эти два списка объединил в один и отсортировал по возрастанию 2 пик - затем создал словарь, где ключи это числа от 1 до 90 в порядке возрастания, а значения - это отсортированный новый список что я хочу дальше если значение в словаре содержится в эталонном списке - вырезать это значение с ключом
>>861102 Мы читаем каждый элемент словаря (ключ и значение). Если значение элемента есть в первом списке, то мы этот элемент (ключ и значение) пишем в новый словарь
>>861105 Че-то и я тебя не понял) То есть тебе надо этот словарь по дувум разным словарям раскидать?
>>861059 Ну хочешь ты навелосипедить тип ПАРА. Имя и телефон, например. Или КООРДИНАТЫ из трёх флоатов. Вот туплями и пилишь. Они легче, иммутабельны и хэшатся.
>>861005 В реквестах тоже тащемта достаточно параметр с прокси передать. Никаких конф нет, как и нет заинтересованных. Так что если есть что-то не космическое, то можно в тред чиркануть.
Анон, есть класс, есть объект класса. Как добавить всем объектам метод? Т.е. есть метод > 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? Если не лень, расскажите кулстори, чем занимаетесь вы и фирма.
>>861295 >"надо парсить кучу проксей" Самое простое, что приходит в голову - это запустить свой headless-браузер в сандбоксе, далее дать ему адрес с списком прокси серваков и посредством распознавания образов прочитать, что он там нарендерил. Проблемы с js (защиты пишут от ботов так) тоже решается. Только нужно немного поэмулировать пользователя в браузере.
Поставил сегодня на хостинг jino сайт на питоне.Все настроил как надо, но нихуя не запускается.Логи забиты ошибками ImportError: No module named _mysql.Mysql скачивал командой pip install MySQL-python.ЧЯДНТ или хостинг плохой?
Алсо, поясните за пост/гет реквесты. Всегда ли нужно посылать ПОСТ, когда меняешь что-то в дб? Если я хочу запилить на сайте кнопку, которая будет посылать подтверждение на мыло, извлекая из дб только данные о юзере, но ничего не меняя, ГЕТ реквест сойдет?
Прошлый: