Как использовать «\dt» в cursor.execute() для получения таблиц в PostgreSQL? (Джанго)
В Django я пытаюсь использоватьвчтобы получить таблицы в PostgreSQL, как показано ниже:
# "views.py"
from django.http import HttpResponse
from django.db import connection
def test(request):
cursor = connection.cursor()
cursor.execute('''\dt''') # Here
row = cursor.fetchone()
print(row)
return HttpResponse("Test")
Но я получил ошибку ниже:
django.db.utils.ProgrammingError: синтаксическая ошибка в или около "\"
LINE 1: \dt
Итак, я заменил
cursor.execute('''\dt''')
с
cursor.execute('''\\dt''')
как показано ниже:
# "views.py"
from django.http import HttpResponse
from django.db import connection
def test(request):
# ...
cursor.execute('''\\dt''') # Here
# ...
return HttpResponse("Test")
Но я все еще получил ошибку ниже:
django.db.utils.ProgrammingError: синтаксическая ошибка в или около "\"
LINE 1: \dt
Итак, как я использую
\dt
вcursor.execute()
получить таблицы в PostgreSQL?
1 ответ
Вы можете перечислить таблицы, используя простой SQL, без необходимости psql.
cursor.execute('''
select *
from pg_catalog.pg_tables
where schemaname = '<your_schema_name>';
''')