小编pas*_*ale的帖子

Flask 多个参数如何在从一个 url 查询数据库的多列时避免多个 if 语句

我正在尝试使用flask作为前端构建一个会计数据库。主页面是账本,有九栏“日期”“描述”“借方”“贷方”“金额”“账户”“参考”“期刊”和“年份”,我需要每次都可以查询一次两个,有超过 8000 个条目,并且还在不断增加。到目前为止,我的代码显示了所有行,一次 200 行,分页,我读过“pep 8”,它谈论可读代码,我读过这个多个参数和这个多个参数,喜欢使用的想法

请求.args.get

但是我需要在查询之前显示所有行,我还查看了这个嵌套的 ifs,我想也许我可以为每个查询使用一个函数,并在视图函数之外使用“If”,然后在视图函数中调用每个,但我不知道该怎么做。或者我可以为每个查询设置一个视图函数。但我不确定这会如何工作,这是我目前的代码,

@bp.route('/books', methods=['GET', 'POST'])
@bp.route('/books/<int:page_num>', methods=['GET', 'POST'])
@bp.route('/books/<int:page_num>/<int:id>', methods=['GET', 'POST'])
@bp.route('/books/<int:page_num>/<int:id>/<ref>', methods=['GET', 'POST'])
@login_required
def books(page_num, id=None, ref=None):
    if ref is not None:
        books = Book.query.order_by(Book.date.desc()).filter(Book.REF==ref).paginate(per_page=100, page=page_num, error_out=True)
    else:
        books = Book.query.order_by(Book.date.desc()).paginate(per_page=100, page=page_num, error_out=True)
    if id is not None:
        obj = Book.query.get(id) or Book()
        form = AddBookForm(request.form, obj=obj)
        if form.validate_on_submit():
            form.populate_obj(obj)
            db.session.add(obj)
            db.session.commit()
            return redirect(url_for('books.books'))
    else:
        form = AddBookForm()
        if form.validate_on_submit():
            obj = Book(id=form.id.data, date=form.date.data, description=form.description.data, …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask

3
推荐指数
1
解决办法
2112
查看次数

标签 统计

flask ×1

python ×1

sqlalchemy ×1