Динамическое SQL-предложение WHERE

Для записи, ям с использованием Python и SQLlite. У меня есть рабочая функция, которая генерирует SQL, который мне нужен, но он не выглядит правильным.

def daily(self, host=None, day=None):
    sql = "SELECT * FROM daily WHERE 1"
    if host:
        sql += " AND host = '%s'" % (host,)
    if day:
        sql += " AND day = '%s'" % (day,)
    return sql

Возможно, мне понадобится добавить несколько столбцов и критериев позже.

Есть идеи получше?

Редактировать: Что не выглядит правильно, так это то, что я строю SQL динамически из строк. Как правило, это не лучший подход. SQL-инъекция атакует, нужно правильно экранировать строки. Я не могу использовать заполнители, потому что некоторые значения имеют значение None и не должны находиться в условии предложения WHERE.

Ответы на вопрос(1)

Ваш ответ на вопрос