【问题标题】:Reducing repeated code in Flask and Flask-SQLAlchemy减少 Flask 和 Flask-SQLAlchemy 中的重复代码
【发布时间】:2013-02-19 16:40:31
【问题描述】:

我正在使用 Flask-SQLAlchemy,并且我有一个包含各种表和关系的数据库。我希望用户能够在表中创建条目,例如(类别)编辑表中的条目并查看该表中的所有条目。

所以我有两个类 Category 和 Revision。类别只有一个名称,而修订有一个名称和一个版本。

我要添加和编辑的代码是:

类别

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

我的模板也是如此。查看所有类别与查看所有修订非常相似。添加修订与添加类别类似。等等

【问题讨论】:

    标签: python flask flask-sqlalchemy


    【解决方案1】:

    Pluggable views 应该可以帮助您减少重复的代码。

    【讨论】:

      猜你喜欢
      • 2015-03-25
      • 2021-10-02
      • 2022-07-14
      • 2016-04-19
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多