Мутационные кварги в столбце SQLAlchemy __init__ ⇐ Python
-
Anonymous
Мутационные кварги в столбце SQLAlchemy __init__
Я пытаюсь создать минимальное приложение Flask + SQLAlchemy следующим образом:
из фляги импорта колбы из столбца импорта sqlalchemy, INTEGER из flask_sqlalchemy импортировать SQLAlchemy приложение = Колба(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db" БД = SQLAlchemy (приложение) класс CustomColumn(Столбец): def __init__(self, *args, **kwargs): kwargs["по умолчанию"] = 0 super().__init__(*args, **kwargs) self.comment = "Мой комментарий" класс BaseModel(db.Model): __abstract__ = Истина my_column = CustomColumn() класс MyModel(BaseModel): id = Столбец("id", ЦЕЛОЕ(), Primary_key=True) приложение.run() requirements.txt:
Колба==3.0.0 Flask-SQLAlchemy==3.1.1 SQLАлхимия==2.0.23 Версия Python — 3.11.3
Python дважды попадает в CustomColumn __init__ во время запуска приложения. В первый раз, как и ожидалось, kwargs были пусты. Во второй раз kwargs не пусты (это можно увидеть по kwargs["default"], kwargs["comment"] в режиме отладки) ).
Я ожидаю пустых kwargs каждый раз, когда Python попадает в CustomColumn __init__. Более того, я даже не понимаю, почему CustomColumn __init__ вызывает дважды.
Я пытаюсь создать минимальное приложение Flask + SQLAlchemy следующим образом:
из фляги импорта колбы из столбца импорта sqlalchemy, INTEGER из flask_sqlalchemy импортировать SQLAlchemy приложение = Колба(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:////tmp/test.db" БД = SQLAlchemy (приложение) класс CustomColumn(Столбец): def __init__(self, *args, **kwargs): kwargs["по умолчанию"] = 0 super().__init__(*args, **kwargs) self.comment = "Мой комментарий" класс BaseModel(db.Model): __abstract__ = Истина my_column = CustomColumn() класс MyModel(BaseModel): id = Столбец("id", ЦЕЛОЕ(), Primary_key=True) приложение.run() requirements.txt:
Колба==3.0.0 Flask-SQLAlchemy==3.1.1 SQLАлхимия==2.0.23 Версия Python — 3.11.3
Python дважды попадает в CustomColumn __init__ во время запуска приложения. В первый раз, как и ожидалось, kwargs были пусты. Во второй раз kwargs не пусты (это можно увидеть по kwargs["default"], kwargs["comment"] в режиме отладки) ).
Я ожидаю пустых kwargs каждый раз, когда Python попадает в CustomColumn __init__. Более того, я даже не понимаю, почему CustomColumn __init__ вызывает дважды.