peewee - 如何在不写入数据库的情况下创建对象属性 -- peewee -- python
问题描述
也许我有一个理解问题。我尝试在一个数据库中制作 2 个表格。但是另外我需要在一个类中有一些我不想写入数据库的临时值。我尝试切换到 peewee 并阅读文档,但我自己找不到解决方案。如果没有 peewee,我会创建一个init方法来编写我的属性。但是我现在必须在哪里写它们?
from peewee import *
import datetime
db = SqliteDatabase('test.db', pragmas={'foreign_keys': 1})
class BaseModel(Model):
class Meta:
database = db
class Sensor(BaseModel):
id = IntegerField(primary_key=True)
sort = IntegerField()
name = TextField()
#def __init__(self):
#self.sometemporaryvariable = "blabla"
def meineparameter(self, hui):
self.hui = hui
print(self.hui)
class Sensor_measure(BaseModel):
id = ForeignKeyField(Sensor, backref="sensorvalues")
timestamp = DateTimeField(default=datetime.datetime.now)
value = FloatField()
class Meta:
primary_key = CompositeKey("id", "timestamp")
db.connect()
db.create_tables([Sensor_measure, Sensor])
sensor1 = Sensor.create(id=2, sort=20, name="Sensor2")
#sensor1.sometemporaryvariable = "not so important to write to the database"
sensor1.save()
解决方案
super()
记住在覆盖子类中的方法时调用:
class Sensor(BaseModel):
id = IntegerField(primary_key=True)
sort = IntegerField()
name = TextField()
def __init__(self, **kwargs):
self.sometemporaryvariable = "blabla"
super().__init__(**kwargs)
推荐阅读
- javascript - 使用Javascript根据类之间的数字计算值
- python - 用 pandas 计算状态持续时间
- c# - OpenApi 生成器 - 从配置文件传递映射
- firebase - firebase - 限制用户登录 14 天
- r - 结构方程建模
- vuejs3 - 如何在不手动刷新页面的情况下使用 vue 3 composition api 观看和检索 param 的 id 查询数据
- javascript - Puppeter 在当前页面或 iFrame 中查找元素
- apache-kafka - 如何在 Apache Kafka-Connect 服务器中重置源连接器偏移量
- javascript - 如何将两个参数传递给由 ajax 函数调用的 python 函数?
- python - 'pandas._libs.interval.Interval' 对象的属性 'left' 不可写