Чтобы получить доступ к таблице на основе выражения Python, которое выдает его имя, вы можете сделать:
tablename = 'mytable'
db[tablename]
Это задокументировано здесь .
Чтобы использоватьсловарь с методом .insert()
, вы можете использовать стандартную распаковку аргумента ключевого слова Python:
db[tablename].insert(**mydict)
Это не относится к web2py или DAL, но является стандартным синтаксисом Python.
Существует такжеспециальный метод, который вы можете использовать для фильтрации любых элементов из словаря, которые не являются полями в таблице:
db.mytable.insert(**db.mytable._filter_fields(mydict))
Вышеприведенное полезно, если вы передаете запись, которая ранее была выбрана из таблицы,так как он автоматически отфильтрует поле id
из записи (вы не хотите указывать id
при вставке, так как оно будет автоматически создано базой данных).
Относительно ссылки на API, кромеиз книги есть также эта документация API .