小编Ant*_*eri的帖子

如何在棉花糖-SQLAlchemy中处理嵌套关系

我有一个项目,试图使用marshmallow-sqlalchemy包将数据从JSON加载到Sqlalchemy数据库中。该模型与子模型包含一对多关系。

使用经典著作的示例,其中包含许多书籍:

class Book(Base):
    __tablename__ = "book"
    id = Column(Integer, primary_key=True)
    title = Column(String(50))

    author_id = Column(Integer, ForeignKey("author.id"), nullable=False)
    author = relationship("Author", backref=backref("books"))


class Author(Base):
    __tablename__ = "author"
    id = Column(Integer, primary_key=True)
    name = Column(String(250))

    books = relationship("Author", back_populates="author")


class BookSchema(ModelSchema):
    class Meta:
        model = Book
        sqla_session = Session


class AuthorSchema(ModelSchema):
    class Meta:
        model = Author
        sqla_session = Session

    books = fields.Nested(BookSchema, many=True)
Run Code Online (Sandbox Code Playgroud)

输入的JSON是

{
    "name": "Author A",
    "books": [
        {"title": "Book 1"},
        {"title": "Book 2"}
    ]
 }
Run Code Online (Sandbox Code Playgroud)

当我尝试加载该JSON时,请使用以下命令:

json_repr …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy marshmallow

6
推荐指数
1
解决办法
1170
查看次数

从 Python 更新 proc 条目的推荐方法是什么

我有一个 linux proc 条目,其中/proc/sys/fs/offs/ts/enable切换自定义内核模块中的标志。将值设置为 1 将启用模块中的一种模式,设置为 0 将禁用该模式。

在 bash 中,要启用该模式,我只需这样做

echo 1 > /proc/sys/fs/offs/ts/enable
Run Code Online (Sandbox Code Playgroud)

要禁用它,

echo 0 > /proc/sys/fs/offs/ts/enable
Run Code Online (Sandbox Code Playgroud)

我有一个用 Python 2.7 编写的守护进程,它将查找一些外部事件触发器,当该事件触发时,应该启用或禁用内核模块中的功能。该守护进程以 root 权限运行,因此我不应该遇到任何类型的权限问题。

有没有推荐的方法从 python 设置这个值?

例如,假设我的函数现在看起来像这样。

def set_mode(enable=True):
    with open('/proc/sys/fs/offs/ts/enable', 'w') as p:
        if enable:
            p.write("1")
        else:
            p.write("0")
        p.flush()
Run Code Online (Sandbox Code Playgroud)

python linux linux-device-driver linux-kernel

3
推荐指数
1
解决办法
2307
查看次数