Как использовать «\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>';
''')
Другие вопросы по тегам