Я пытаюсь найти лучший способ отформатировать строку запроса sql. Когда я отлаживаю свое приложение, я хочу записать в журнал все строки запроса sql, и важно, чтобы строка была правильно сформирована.
Опция 1
def myquery():
sql = "select field1, field2, field3, field4 from table where condition1=1 and condition2=2"
con = mymodule.get_connection()
...
- Это хорошо для печати строки sql.
- Это не лучшее решение, если строка длинная и не соответствует стандартной ширине в 80 символов.
Вариант 2
def query():
sql = """
select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
Здесь код ясен, но когда вы печатаете строку запроса sql, вы получаете все эти раздражающие пробелы.
u '\ nвыбрать field1, field2, field3, field4 \ n_ _ ___ из таблицы \ n _ ___, где condition1 = 1 \ n _ ___ _and condition2 = 2'
Примечание: я заменил пробелы на подчеркивание _
, потому что они обрезаны редактором.
Вариант 3
def query():
sql = """select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
- Мне не нравится этот вариант, потому что он нарушает ясность хорошо табулированного кода.
Вариант 4
def query():
sql = "select field1, field2, field3, field4 " \
"from table " \
"where condition1=1 " \
"and condition2=2 "
con = mymodule.get_connection()
...
- Мне не нравится этот вариант, потому что лишний набор текста в каждой строке также затруднен для редактирования запроса.
Для меня лучшим решением будет вариант 2, но мне не нравятся лишние пробелы при печати строки sql.
Вы знаете какие-нибудь другие варианты?