0

私は 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

同じことが私のテンプレートにも当てはまります。すべてのカテゴリを表示することは、すべてのリビジョンを表示することと非常によく似ています。リビジョンの追加は、カテゴリの追加に似ています。等

4

1 に答える 1

1

プラグ可能なビューは、複製されたコードを減らすのに役立ちます。

于 2013-02-19T19:05:32.287 に答える