我的 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 类型文件中?
我有以下代码获取“总线”层的 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)