我正在尝试使用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)