TurboGears2/SQLAlchemy:自動インクリメント主キーを使用してテーブルに新しい行を挿入する
-
21-09-2019 - |
質問
私は初心者で、TG2 と SQLAlchemy について理解しようとしています。私が現在取り組んでいる具体的な問題は、PK フィールドが自動インクリメントとして構成されている場合に、テーブルに新しい行を挿入する方法です。
例えば:
myproject.model.myproject.py ファイルで次のテーブルを定義しました。
class Dj(DeclarativeBase):
__tablename__ = 'djs'
#{ Columns
djID = Column(Integer, autoincrement=True, primary_key=True)
djname = Column(String)
djwebpage = Column(String)
#}
websetup.py ファイルに初期データを入力します。これはデータの最初の行なので、djID を「1」と定義しました。
dj = model.Dj("1", "DJ Anonymous", "http://www.djanonymous.com")
websetup.py で djs テーブルに (オブジェクト Dj 経由で) 2 行目を作成したい場合は、どうすればよいでしょうか?
以前にさまざまなことを試しましたが、うまくいきませんでした。たとえば、同じ形式を使用したが、(djname 列と djwebpage 列に) 2 つの文字列しか含めなかった場合、十分な引数を与えなかったことを示すエラーが発生します。
もちろん、最終的には、テーブルに新しいエントリを挿入できるようにするコントローラーの作成方法を理解する必要があります...しかし、一度に一歩ずつ学習し、websetup.py ファイルを介してテーブルに複数の行を事前に取り込むことができただけでも感謝したいと思います。それが私に次のステップへ進むためのヒントを与えてくれることを願っています。
前もって感謝します!
解決
まあ、あなたの問題は単純です(私は、それが長い間答えられなかったことに感銘を受けました:)。
- まず、なぜ ID 列に「djID」という名前を付けるのでしょうか?なぜIDだけではいけないのですか?
- 次にあなた しないでください これが自動インクリメントである理由です。
- 第三に、 最初の基本 SA チュートリアルではこれについて説明します
所属していません StackOverflow