Sestavování dotazů z parametrů
Teď implementuješ výkonnější funkci pro dotazování databáze hotelů. Cílem je, aby tato funkce přijímala argumenty, které mohou být později specifikovány jinými částmi tvého kódu.
Konkrétně tvým úkolem je definovat funkci find_hotels(), která přijme jediný argument – slovník názvů sloupců a hodnot – a vrátí seznam odpovídajících hotelů z databáze.
Toto cvičení je součástí kurzu
Building Chatbots in Python
Pokyny k cvičení
- Byl pro tebe připraven seznam
filters. Spoj tento seznam dohromady s řetězci" WHERE "a" and ". - Vytvoř tuple hodnot ze slovníku
params. - Vytvoř připojení a kurzor k
"hotels.db"a poté spusť dotazquery, stejně jako v předchozím cvičení. - Vrať výsledky dotazu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____