始める無料で始める

パラメータからクエリを作成する

ここでは、ホテルデータベースをより柔軟に検索できる関数を実装しましょう。この関数は、コードの他の部分から引数を受け取って動作することを目標にします。

具体的には、列名と値の辞書を引数として受け取り、条件に一致するホテルの一覧をデータベースから返す find_hotels() 関数を定義しましょう。

この演習はコースの一部です

Python でチャットボットを作る

コースを見る

演習の手順

  • filters リストはすでに作成されています。このリストを " WHERE "" and " という文字列でつなぎ合わせましょう。
  • params 辞書の値からタプルを作成しましょう。
  • 前の演習と同様に、"hotels.db" への接続とカーソルを作成し、query を実行しましょう。
  • クエリの結果を返しましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Define find_hotels()
def find_hotels(params):
    # Create the base query
    query = 'SELECT * FROM hotels'
    # Add filter clauses for each of the parameters
    if len(params) > 0:
        filters = ["{}=?".format(k) for k in params]
        query += " ____ " + " ____ ".join(____)
    # Create the tuple of values
    t = tuple(____)
    
    # Open connection to DB
    conn = sqlite3.connect("____")
    # Create a cursor
    c = ____
    # Execute the query
    ____
    # Return the results
    ____
コードを編集して実行