私は Flask-SQLAlchemy を使用しており、さまざまなテーブルと関係を持つデータベースを持っています。ユーザーが(カテゴリ)テーブルのエントリを編集し、そのテーブルのすべてのエントリを表示するように、テーブルにエントリを作成できるようにしたいと考えています。
したがって、Category と Revision の 2 つのクラスがあります。カテゴリには名前だけがあり、リビジョンには名前とバージョンがあります。
追加および編集する私のコードは次のとおりです。
カテゴリー
def addCategory(name):
cat = models.Category(name=name)
db.session.add(cat)
try:
db.session.commit()
except sqlalchemy.exc.IntegrityError:
print "adding a row that violates the unique constraint"
リビジョン
def addRevision(name, version):
cat = models.Revision(name=name, version=version)
db.session.add(cat)
try:
db.session.commit()
except sqlalchemy.exc.IntegrityError:
print "adding a row that violates the unique constraint"
カテゴリー
def editCategory(name, newName):
cat = models.Category.query.filter_by(name=name).first()
if cat:
cat.name = newName
db.session.add(cat)
try:
db.session.commit()
return True
except sqlalchemy.exc.IntegrityError:
print "That Category already exists"
return False
リビジョン
def editRevision(name, version, newName, newVersion):
rev = models.Revision.query.filter_by(name=name, version=version).first()
if rev:
rev.name = newName
rev.version = newVersion
db.session.add(rev)
try:
db.session.commit()
return True
except sqlalchemy.exc.IntegrityError:
print "That Revision already exists"
return False
同じことが私のテンプレートにも当てはまります。すべてのカテゴリを表示することは、すべてのリビジョンを表示することと非常によく似ています。リビジョンの追加は、カテゴリの追加に似ています。等