@spbpython

Страница 516 из 785
Sergey
21.09.2017
09:58:39
хз, стоит ли. Он будет в сильно прокачанном виде на @PiterPy
Го в таком же виде на митапе (чтобы не повторяться на PiterPy :)

Marco
21.09.2017
09:59:20


понимаю что к воркерам это не относится, и речь лишь про сам supervisord, но в 2017 году "does not work on Python 3" как-то очень вызывающе звучит

Google
Eugene
21.09.2017
10:02:08
Есть ещё circus

Danil
21.09.2017
10:02:09
Изначально хотел использовать supervisor, но:
да, поэтому мы используем circus )

Marco
21.09.2017
10:06:42
А systemd не умеет запускать процессы по количеству ядер? Channels воркерам ведь кроме редиса вообще ничего не нужно - входящие соединения они не слушают.

Sergey
21.09.2017
10:18:27
Marco
21.09.2017
10:19:22
https://serverfault.com/questions/730239/start-n-processes-with-one-systemd-service-file
Это немного про другое - шаблон с параметрами. Мне нужно просто запускать несколько воркеров при включениии системы, и перезапускать если они по какой-то причине упали.

Robert
21.09.2017
10:20:52
Здравствуйте. Кто-нибудь работал с Orator ORM?

spb_python_bot
21.09.2017
10:21:53
import __this__
The Zen of SPb Python Chat (Inspired by "The Zen of Python, by Tim Peters") - Short introduction of yourself is better than "hello". - Link to gist is better than source paste. - One long message is better than many short. - Editing the message is better than correcting via another one. - Staying on topic is better than offtopic. - Good topic is worth discussing though. - Unless it is started by a link to Habrahabr. - Politeness counts. - Bad mood is not a good reason to break the rules. - Don't ask to ask just ask. - Text message is better than voice message. - Unless it is voice conference. - Git repos are one honking great idea — let's do more of those!

Danil
21.09.2017
10:22:36
Здравствуйте. Кто-нибудь работал с Orator ORM?
- Short introduction of yourself is better than "hello". - Don't ask to ask just ask. Лучше спрашивай )

Robert
21.09.2017
10:23:48
Объясню проблему. Почему-то Orator ORM пытается подключиться к БД от имени root без пароля.

Google
Robert
21.09.2017
10:24:36
Модель выглядит так:

Danil
21.09.2017
10:24:53
Модель выглядит так:
лучше уж конфиг

Robert
21.09.2017
10:25:20
from orator import Model from orator import DatabaseManager config = { 'mysql': { 'driver': 'mysql', 'host': 'localhost', 'database': 'somedb', 'user': 'someuser', 'password': 'somepass', 'prefix': '' } } db = DatabaseManager(config) Model.set_connection_resolver(db) class Websites(Model): __table__ = 'vhosts' __fillable__ = [ 'userid', 'mainname', 'charset', 'index', 'email', 'php', 'node' ] __timestamps__ = False __primary_key__ = 'unid'

Sergey
21.09.2017
10:25:25
import __this__
А пепы работают? :)

Danil
21.09.2017
10:25:32
spb_python_bot
21.09.2017
10:25:33
#pep8
https://www.python.org/dev/peps/pep-0008/

Sergey
21.09.2017
10:25:49
?

Robert
21.09.2017
10:26:31
Импортирую модельв контроллер:

from models.Websites import Websites

И затем пытаюсь получить все сайты

hosts = Websites.all()

Ошибка:

pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

В чём может быть проблема?

Т.е. Orator ORM игнорирует указанные мною значения логина и пароля

Danil
21.09.2017
10:31:37
надо в DatabaseManager капать, кстати, попробуй для начала из этого же файла сделать Websites.all()

Robert
21.09.2017
10:36:13
Если в том же файле это сделать, то всё работает

class Websites(Model): __table__ = 'vhosts' __fillable__ = [ 'userid', 'mainname', 'charset', 'index', 'email', 'php', 'node' ] __timestamps__ = False __primary_key__ = 'unid' print(Websites.all().to_json())

root@dartp52:~/api/models# python3.6 Websites.py []

b0g3r
21.09.2017
10:38:53
что-то ты не договариваешь

Google
Robert
21.09.2017
10:40:01
Не совсем понял Ваш вопрос. Я в модели импортирую классы DatabaseManager и Model

И насколько я понимаю, это один файл

Который я потом подключаю в контроллере

Roman
21.09.2017
10:52:51
root@dartp52:~/api/models# python3.6 Websites.py []
А зачем ты вообще это под рутом запускаешь?

Robert
21.09.2017
10:56:02
File "testcontroller.py", line 1, in <module> from models.Websites import Websites ModuleNotFoundError: No module named 'models'

При попытке запуска файла ~/api/controllers/testcontroller.py получаю такую ошибку

b0g3r
21.09.2017
10:56:52
а как запускаешь?

Robert
21.09.2017
10:57:07
Модель лежит в ~/api/models/Websites.py

а как запускаешь?
cp@srv:~/api/controllers$ python3.6 testcontroller.py Traceback (most recent call last): File "testcontroller.py", line 1, in <module> from models.Domains import Domains ModuleNotFoundError: No module named 'models'

b0g3r
21.09.2017
10:59:53
ну всё верно, чтобы models был виден - нужно запускать из api

~/api$ python 3.6 -m controllers.testcontoller

но вообще это предмет разговора для @ru_python / @ru_python_beginners

Robert
21.09.2017
11:04:00
Сделал как Вы сказали - вернулся к ошибке

File "/usr/local/lib/python3.6/dist-packages/pymysql/err.py", line 107, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

Dmitry
21.09.2017
11:05:46
выведи на печать конфиг. судя по всему он не цепляется в этом случае

Robert
21.09.2017
11:07:59
Всё работает, если определить конфиг в контроллере...

b0g3r
21.09.2017
11:08:28
Не, без исходного кода здесь сложно по обрезкам так думать чего там не так

Robert
21.09.2017
11:11:28
Вот как работает:

Google
Robert
21.09.2017
11:11:39
from dbconfig import config from orator import DatabaseManager, Model from models.Domains import Domains db = DatabaseManager(config) Model.set_connection_resolver(db) class Site: @staticmethod def getall(): print(Domains.all().to_json()) Site.getall()

dbconfig.py:

b0g3r
21.09.2017
11:12:06
models/Domains.py в студию

Sergey
21.09.2017
11:12:31
Не в студию, а на gist :(

Robert
21.09.2017
11:12:35
from orator import Model class Domains(Model): __table__ = 'domain' __timestamps__ = False __primary_key__ = 'unid' __fillable__ = [ 'mainname', 'fullname', 'type', 'userid', 'sub', 'vhost', 'https', 'node']

b0g3r
21.09.2017
11:13:03
регистрируй конфиг при запуске приложения в entry-point, а не в файлах моделей и будет тебе счастье Если у тебя в файле a.py что-то происходит (например, глобально регистрируется конфиг опатора), но этот файл не импортируется и не запускается - то чуда не произойдет

сейчас, очевидно - у тебя где-то регистрируется конфиг, где-то нет, поэтомы ты костылишь то тут, то там

Robert
21.09.2017
11:30:52
Как вариант - во все контроллеры добавить config и подключение к БД

b0g3r
21.09.2017
11:31:03
один раз - в entry-point (я ж правильно называю?)

Robert
21.09.2017
11:32:17
Не совсем понял, что Вы имеете ввиду под entry-point

Всё приложение представляет собой API, который запускается через файл handler.py. Это, насколько я понимаю, и есть entry-point

b0g3r
21.09.2017
11:34:15
Именно!

Robert
21.09.2017
11:34:19
И в нём я должен прописать подключение к БД, которое будет общим для всех моделей и контроллеров?

b0g3r
21.09.2017
11:34:58
Можно необязательно в нём, можно туда импортировать модуль/функцию с регистрацией

Robert
21.09.2017
11:59:11
Спасибо большое

Evgeny
21.09.2017
12:02:31
Всем привет! #job Ищем ещё двух (джуна и мидла) https://moikrug.ru/vacancies/1000036558.

Andrey
21.09.2017
12:03:47
Что это за кнжка кстати

Google
b0g3r
21.09.2017
12:04:12
На следующей фотке ссылка на автора

Sergey
21.09.2017
12:07:20
На следующей фотке ссылка на автора
На первой тоже твиттер указан, кстати

Andrey
21.09.2017
12:07:42
Насколько я понял, это два скетча, а не целая книга

Но всё равно милота

Ilya
21.09.2017
12:12:06
На первой тоже твиттер указан, кстати
Я пока целиком не нашёл... вдруг кто раньше найдёт, дайте знать, пожалуйста!

Chikiro
21.09.2017
12:13:29
Скорее всего это не книжка, а скетчбук

Sergey
21.09.2017
12:16:22
Ilya
21.09.2017
12:17:10
эх... вообще или в сети? надо к автору напрямую, видимо, обращаться!

Sergey
21.09.2017
12:18:15
https://twitter.com/girlie_mac/status/905270297128865792 Ну вот первый твит, от шестого сентября, второй — ответом на первый, десятого :D

Andrey
21.09.2017
12:19:12
Я еще знаю в таком стиле - manga guide to databases и https://jvns.ca/zines/

Ilya
21.09.2017
12:19:31
https://twitter.com/b0rk

Страница 516 из 785