2

私は現在、ユーザーが検索フォーム (html) で適切なフィールドをすべて選択し、値を web2py クエリに渡すページに取り組んでいます。

このクエリの作成に問題がありますか? HTMLフォームから値を実際にweb2pyクエリに渡してデータベースに対して実行する方法を知りたいですか?

4

1 に答える 1

2

フォームを web2py に (GET または POST 経由で) 送信すると、すべてのフォーム変数が利用可能になります(詳細については、ディスパッチオブジェクトrequest.varsに関する本のセクションと、フォームに関する章を参照してください)。request

したがって、次のようなことができます。

def search():
    rows = None
    if request.vars:
        query = reduce(lambda a, b: (a & b),
            (db.mytable[var] == request.vars[var] for var in request.vars))
        rows = db(query).select()
    return dict(rows=rows)

reduce()ジェネレーター式を使用することは、次のようなクエリを作成することと同じであることに注意してください。

(db.mytable.field1 == request.vars.field1) & \
(db.mytable.field2 == request.vars.field2) & \
...
(db.mytable.fieldN == request.vars.fieldN)
于 2013-01-12T13:42:55.373 に答える