小编Jeu*_*uke的帖子

使用 SQLAlchemy 如何在使用 db.create_all() 创建数据库后填充行

我的 SQLAlchemy app.py 中有一个 create_all 调用

@app.before_first_request
def create_tables():
    db.create_all()
Run Code Online (Sandbox Code Playgroud)

并在 user.py 模型文件中定义一个基本用户:

class UserModel(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key = True)
    username = db.Column(db.String(80))
    password = db.Column(db.String(80))

    def __init__(self, username, password):
        self.username = username
        self.password = password
Run Code Online (Sandbox Code Playgroud)

我想预先填充一些默认数据,在这个例子中是一些基本用户:

    admin = self('admin', 'test')
    guest = self('guest', 'test')
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式在 app.py 中输入它们吗?或者在另一个 create_data.py 类型文件中?

python sqlalchemy flask flask-sqlalchemy

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

elementHandle.$x(expression) 似乎没有相对于给定的 elementHandle 运行

我有以下代码获取“总线”层的 elementHandle(在 32 个不同层的列表中)

const [layerFound] = await page.$x("//div[@class='layer']/label[.='Buses']/..");
Run Code Online (Sandbox Code Playgroud)

然后我需要对这个“层”对象中的其他元素进行一些激活/验证。但是下一行不是从 Buses 层抓取“visible-toggle”对象,而是从 32 列表的第一层抓取对象。

const [layerVis] = await layerFound.$x("//div[contains(@class, 'layer-option visible-toggle')]");
Run Code Online (Sandbox Code Playgroud)

我的理解是 elementHandle.$x(expression) 计算相对于 elementHandle 的 XPath 表达式。但它是相对于页面对象进行的。

其中有很多。第一个是“桥”。哪个是被发现/使用的。

<div class="layer">
  <label class="layer-label"><div>Buses</div></label>
  <div class="layer-option entity-count"><div>(629)</div></div>
  <div class="layer-option visible-toggle ">...</div>
  <div class="layer-option layer-preferences-toggle">...</div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript jestjs puppeteer

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