Próbuję znaleźć najlepszy sposób formatowania ciągu zapytania sql. Kiedy debuguję moją aplikację, chciałbym rejestrować wszystkie ciągi zapytań sql i ważne jest, aby łańcuch był odpowiednio sformatowany.
opcja 1
def myquery():
sql = "select field1, field2, field3, field4 from table where condition1=1 and condition2=2"
con = mymodule.get_connection()
...
- Jest to dobre do drukowania ciągu sql.
- Nie jest to dobre rozwiązanie, jeśli łańcuch jest długi i nie mieści się w standardowej szerokości 80 znaków.
Opcja 2
def query():
sql = """
select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
Tutaj kod jest jasny, ale kiedy drukujesz ciąg zapytania sql, otrzymujesz wszystkie te irytujące białe spacje.
u '\ nwybierz pole1, pole2, pole3, pole4 \ n_ _ ___ z tabeli \ n _ ___ gdzie warunek1 = 1 \ n _ ___ _ i warunek2 = 2'
Uwaga: białe spacje zastąpiłem podkreśleniem _
, ponieważ zostały one przycięte przez edytor
Wariant 3
def query():
sql = """select field1, field2, field3, field4
from table
where condition1=1
and condition2=2"""
con = mymodule.get_connection()
...
- Nie podoba mi się ta opcja, ponieważ narusza przejrzystość dobrze sklasyfikowanego kodu.
Opcja 4
def query():
sql = "select field1, field2, field3, field4 " \
"from table " \
"where condition1=1 " \
"and condition2=2 "
con = mymodule.get_connection()
...
- Nie podoba mi się ta opcja, ponieważ całe dodatkowe wpisywanie w każdym wierszu i trudno jest również edytować zapytanie.
Dla mnie najlepszym rozwiązaniem byłaby opcja 2, ale nie lubię dodatkowych białych znaków podczas drukowania ciągu sql.
Czy znasz inne opcje?