我想修改 users.query.all()
以获得类似 db_table.query.all()
的内容。我该如何编辑这部分?
def test(db_table):
all = db_table.query.all()
print (all)
return 'ok'
我以这种方式运行文件:
python my-script.py [users]
在文件中,函数将以这种方式调用:
if __name__ == '__main__':
application.run(test(sys.argv[0]), debug=True)
通过运行上面的代码,我将面临这个错误:
all = db_table.query.all() AttributeError: 'str' object has no attribute 'query'
我想将表名作为参数传递给test函数,然后将其放入查询中。
答案 0 :(得分:1)
将参数传递给脚本时,您将在示例中获得一个值,它是一个字符串值。但是你需要一个物体。您可以定义一个函数并检查字符串值是否与您的模型名称相同,然后返回该对象:
class User(db.Model):
...
def get_model(arg):
if arg == 'users':
return User
return False
def test(db_table):
db_table = get_model(db_table)
if db_table:
all = db_table.query.all()
print (all)
return 'ok'