Я исхожу из фона PHP. При составлении запросов SQL Я стараюсь сделать что-то вроде этого:Лучший способ склеивания строк в Python для составления SQL-запроса
$query = '
SELECT
*
FROM `table` AS t
WHERE
t.`categoryID` = '.$categoryID.'
';
if(!empty($recordID))
{
$query .= '
AND t.`recordID` = '.$recordID.'
';
}
$data = $db->fetchAll($query);
Что бы быть лучшим/наиболее эффективный способ сделать это в Python?
Что DB библиотеки вы используете? Вероятно, вам следует избегать конкатенации строк, поскольку это может привести к возникновению уязвимостей SQL-инъекций. –
Чтобы расширить комментарий @MarkByers: Это то, что люди Psycopg называют наивным подходом к составу строк запроса, например. используя конкатенацию строк - http://initd.org/psycopg/docs/usage.html#the-problem-with- the-query-parameters. Вместо этого используйте параметры запроса, чтобы избежать атак SQL-инъекций и автоматически конвертировать объекты Python в и из SQL-литералов. http://stackoverflow.com/questions/3134691/python-string-formats-with-sql-wildcards-and-like?rq=1#comment24606225_3134691 –