2

web2py アプリケーションからの sqlite データベースがあります。gluonライブラリを使用してデータを操作したい。この投稿を読みましたが、エラーが発生しましDAL object has no attribute 'userた。私が理解しているように、テーブルの定義を使用する必要があります(myapp/models/tables.py)。web2py 以外の既存のデータベースで DAL を使用するにはどうすればよいですか (gluon ライブラリのみを使用)。

これが私のコードです:

from gluon.sql import DAL, Field
from gluon.validators import *

module_path = os.path.abspath(os.path.dirname(__file__))
print module_path
dbpath = module_path + '/../databases/'

db_name = "storage.sqlite"

db = DAL('sqlite://' + db_name, folder=dbpath)
rows = db(db.user).select()

私の質問は、私が持っているテーブルのすべての定義をインポートする方法myapp/models/tables.pyですか?

4

3 に答える 3

2

使用できますpydal

pip install pydal

その後:

from pydal import DAL, Field
...
于 2015-12-29T00:59:32.000 に答える
0

コードは を参照してdb.userいますが、コードで「ユーザー」テーブルを定義していません。Python モジュールではないため、アプリ モデル ファイルからテーブル定義をインポートすることはできません。解決策の 1 つとして、次のようなものがあります。

db = DAL('sqlite://' + db_name, folder=dbpath, auto_import=True)

*.table ファイルからテーブル メタデータを読み取り、テーブル定義を作成しますが、定義には、フィールド バリデータ、ラベルなどの web2py 固有のモデル属性の一部は含まれません。フィールド属性は、外部コードに直接含める必要があります。詳しくは こちら をご覧ください

また、かなり前に非推奨になった do import gluon.dal、 notgluon.sqlも使用できます (単に gluon.dal を指します)。

于 2013-03-19T23:22:39.913 に答える