@python_beginnersЭта группа больше не существует

Страница 707 из 1885
Марк
06.11.2016
19:03:45
ты вызываешь python script.py питон сперва читает файл в память. потом парсит и создает аст. на этом этапе ловятся синтакс еггоги если всё ок, идёт обход аст и генерация байткода. на этом этапе строки и прочие литералы как [1, 2, 3] превращаются в константы в объекте кода потом запускается евал цикл, который обрабатывает байткод. на этом этапе происходит вызов list() т.е. вот тот литерал создался один раз и в бинарном виде а лист() вызывается в рантайме и выделяет память каждый раз со всем багажом затрат

Zart
06.11.2016
19:06:00
Марк
06.11.2016
19:08:28
для аниме у меня другие каналы есть
Закинь в лс какой-нибудь чатик с анимеёбами.

Zart
06.11.2016
19:08:52
а вбить в поиск и найти сразу пачку не?

Google
Марк
06.11.2016
19:09:08
В телеге? Тут же хуй найдешь

Zart
06.11.2016
19:09:10
но там про питона не будет

Марк
06.11.2016
19:11:27
Korolll
06.11.2016
19:11:40
Ребят подскажите, как в Django логировать все запросы к серверу в файл?

Zart
06.11.2016
19:12:06
нгинкс/апач/все вебсерверы умеют логгировать запросы, включая статику

Korolll
06.11.2016
19:15:01
нгинкс/апач/все вебсерверы умеют логгировать запросы, включая статику
Да я понимаю у меня подключены nginx логи, но мне хотелось бы получать полную инфу о запросе что в хедаре, что в боди и тд

Zart
06.11.2016
19:15:17
плохая мысль

тем более что опять же вебсервера умеют отдавать статистику в хедерах при настройке

Vadim
06.11.2016
19:16:41
Ну для дебага – ок. Если в голой джанге – копай в сторону settings.LOGGING.

Хочется человеку выстрелить себе в ногу – почему бы не помочь?

Zart
06.11.2016
19:17:38
не, логи приложения это тоже важная и нужная штука, но она решает другую проблему

и туда не попадают "все запросы"

Google
Alexandr
06.11.2016
19:19:02
@alexstav, не забудь, что execute выполняет не больше 25 запросов за один раз (если сейчас не поменяли), так что в pages_list надо передать не больше 25 элементов. Плюс передавать их надо (в моём случае): json.dumps(list(liked_pages_chunk)
Короче, хрень оказалась в том, что в документации (и, соответственно, в тестовых запусках) API.execute() возвращает объект с ключом items, а в реальности ключ users. Спасибо за помощь.

Vadim
06.11.2016
19:19:24
@alexstav, кхм… Удобно)

Korolll
06.11.2016
19:21:28
и туда не попадают "все запросы"
Я понимаю что не все, у меня там только запросы к api. Я пришёл к мысли, что мне нужен дополнительный лог на Джанго, когда решал свою предыдущую задачу.

и туда не попадают "все запросы"
Ну ту с csrf, если помните

Zart
06.11.2016
19:22:15
а..

такие задачи обычно решаются через мидлварь

Alexandr
06.11.2016
19:22:43
Вопросик: какую либу покурить для простенького UI на питоне?

Denis
06.11.2016
19:22:50
tkinter, гы

Zart
06.11.2016
19:23:06
http://stackoverflow.com/a/4839713/356274 пример

Vadim
06.11.2016
19:23:18
Ну… Kivy :)

Zart
06.11.2016
19:23:31
киви? простенькое уи? мда

b0g3r
06.11.2016
19:23:41
надеюсь это щас была ирония)

Alexandr
06.11.2016
19:23:57
Мне нужно элементарное: вывод картинок и пара кнопок, завязанных на функции.

53r63rn4r
06.11.2016
19:24:04
Киви там ебануться можно

Alexandr
06.11.2016
19:24:20
:D

Zart
06.11.2016
19:24:44
ткинтер сойдет, да. тем более он в комплекте

Korolll
06.11.2016
19:25:06
http://stackoverflow.com/a/4839713/356274 пример
Пока точно сказать не могу, но вроде то, что надо

Vadim
06.11.2016
19:25:41
Интересно, а что бы вы сказали на моё предложение pyqt? :D

Google
Denis
06.11.2016
19:26:07
Ну норм, кеды фарева

53r63rn4r
06.11.2016
19:26:09
На пайкьте меньше граблей, чем на киви

Zart
06.11.2016
19:26:12
Пока точно сказать не могу, но вроде то, что надо
только сислог поменяй на логгинг

53r63rn4r
06.11.2016
19:26:20
Киви мне показался крайне неудобным и геморным

b0g3r
06.11.2016
19:26:59
Интересно, а что бы вы сказали на моё предложение pyqt? :D
ну если не считать того, что на нём очень трудно что-то делать, когда ты обложился пеп8, то пойдет

так и не решил что лучше - смешивать написание или нет

Vadim
06.11.2016
19:27:19
Мне весь UI на питоне кажется унылым :(

b0g3r
06.11.2016
19:27:33
qt вполне себе

Vadim
06.11.2016
19:27:47
Не-не, я не буду обсуждать pep8. Опять будете троллем обзывать :(

Korolll
06.11.2016
19:28:13
Ещё такой вопрос, кто-нибудь писал real-time без использования сокетов. То есть на сервер отправляем запрос и отдаём по событию в бд. Если да, то не подскажите, как сделать так, чтобы 1 вотчер не занимал 1 воркер

b0g3r
06.11.2016
19:28:14
пробелы vs табы, ага

53r63rn4r
06.11.2016
19:28:53
53r63rn4r
06.11.2016
19:28:54
:D

Korolll
06.11.2016
19:28:59
Ответ отдаём*

Zart
06.11.2016
19:29:20
какое отношение сокеты имеют к рилтайму...

Vadim
06.11.2016
19:29:37
Почему бы не использовать вебсокеты?

Korolll
06.11.2016
19:30:14
Сокеты*

Почему бы не использовать вебсокеты?
Не все браузеры их поддерживают + это лишние зависимости

Vadim
06.11.2016
19:31:30
Какие браузеры не поддерживают socket.io?

Google
Zart
06.11.2016
19:31:36
какое отношение вебсокеты имеют к сокетам...

Vadim
06.11.2016
19:31:43
Ну… Можно повесить условный post_save сигнал на базу/таблицу и проверять, кому это надо отправить.

@zartsoft, считай, что я телепат :D

Zart
06.11.2016
19:31:59
тсс

Zart
06.11.2016
19:32:15
я пытаюсь заставить человека выучить терминологию, чтобы его в другой раз понимали нетелепаты

Korolll
06.11.2016
19:36:11
Ну… Можно повесить условный post_save сигнал на базу/таблицу и проверять, кому это надо отправить.
Я так и сделал, но есть несколько проблем. Первая, что на каждого слушателя выдаётся worker и 2, что gunicorn и nginx через некоторое время требуют ответ и если событий к тому времени не произошло всё рушится

Vadim
06.11.2016
19:36:49
Если произошло событие, то ты с сервера 1 инициируешь запрос на сервер 2

Admin
ERROR: S client not available

Zart
06.11.2016
19:38:19
он хочет лонг поллинг чтоль?

Vadim
06.11.2016
19:38:33
Я пока не понял :)

Но, думаю, он не хочет лонг поллинг. А почему, не ответил.

Korolll
06.11.2016
19:39:33
Если произошло событие, то ты с сервера 1 инициируешь запрос на сервер 2
Ты имеешь виду, что как ни крути нужен не блокирующий сервак типа ноды или торнадо?

Zart
06.11.2016
19:41:11
а нгинкс тогда что... *легкое охуение*

Vadim
06.11.2016
19:41:55
В случае с веб сокетами можно использовать что-то типа tornadio, django-socketio или аналоги. Можно почитать про socket.io. Если хочется позаморачиваться, то можно при эвенте в базе делать запрос на сервер 2.

Korolll
06.11.2016
19:42:50
Я точно не знаю, но вроде Django не может инициировать ответ без запроса

Vadim
06.11.2016
19:43:12
manage.py команда, например?

Korolll
06.11.2016
19:45:10
Команда manage.py сама по себе никак не влияет на клиента

Vadim
06.11.2016
19:45:24
Я не понял вопрос.

Korolll
06.11.2016
19:49:01
Я не понял вопрос.
Ну то есть я имел ввиду, что мы не можем получить ответ от сервера не отправив туда запрос. То есть я не понял каким образом клиент получит инициированный на сервере ответ.

Google
arisu
06.11.2016
19:49:21
Никак

Vadim
06.11.2016
19:49:54
Сервер с БД что-то в ней делает, потом инициирует запрос на сервер 2.

Так работает real time update в некоторых соц.сетях.

Korolll
06.11.2016
19:50:38
Так а к клиенту, как это поподает

Vadim
06.11.2016
19:51:10
А теперь давай с самого начала: что ты хочешь сделать?

Korolll
06.11.2016
19:59:09
А теперь давай с самого начала: что ты хочешь сделать?
Я хочу сделать real-time без веб сокетов (потому что мне лень внедрять новые зависимости и проект не коммерческий). Самое просто решение это отправлять на сервер запрос и как только что-то происходит в бд отправлять всем клиентам заинтересованным в обновлённой информации ответ. Но тут есть две проблемы под каждого клиента выделяется, как минимум 1 вокер, и nginx, gunicorn, да и большинство браузеров так и норовят закрыть соединение по таймингу. Внимание вопрос, есть ли способы кроме двух выше перечисленных и отправления запроса раз в n секунд, для решения моей проблемы

Zart
06.11.2016
20:00:35
человек ведь даже не понимает что такое рилтайм -_-

Vadim
06.11.2016
20:00:46
Если клиент – браузер, то я бы использовал веб сокеты и не пытался придумать велосипед.

Zart
06.11.2016
20:01:21
в общем его не устраивает хттп

Vadim
06.11.2016
20:01:37
Ну… Можно написать свой клиент и свой протокол ;)

Только вот зачем?…

Zart
06.11.2016
20:02:14
чятег?

Vadim
06.11.2016
20:02:26
Скорее всего

Korolll
06.11.2016
20:03:56
человек ведь даже не понимает что такое рилтайм -_-
Ну я думал это, когда пользователь может видеть изменения в бд в режиме реального времени, перезагрузки страницы

Zart
06.11.2016
20:05:03
лучше не употреблять выражение "в режиме реального времени", потому что у этого термина очень специфическое значение

в которое веб почти не попадает

Zart
06.11.2016
20:07:24
наверное. по опыту работы с вебсокетными решениями - в локалочках они еще ок работают. в инете с задержками - бесят как пиздец

Korolll
06.11.2016
20:08:03
Если клиент – браузер, то я бы использовал веб сокеты и не пытался придумать велосипед.
У меня не достаточно инфы пока по сокетам, так бы с радостью использовал

Vadim
06.11.2016
20:08:58
Ну если мы говорим про веб.апп, то здесь надо включить разум и вебсокеты. Я не вижу в этом проблему. Изменил параметр – он перерисовался на фронте и отправился в базу. Изменился параметр в базе – отправил на фронт и перерисовал. Если мы говорим про общий случай, то на задержки до 200-500мс очень насрать.

За сим откланяюсь, повторять одну и ту же мысль пять раз надоело :)

Страница 707 из 1885

Эта группа больше не существует Эта группа больше не существует