用Django部署了一个项目,数据库采用postgreSQL。如果需要查看一下posgres里面的表结构,比如‘auth_user'表是由哪些字段构成的,最简单的方法是进入postgre数据库,使用

postgres=# \d auth_user

在pyhon中,可以使用“select column_name from information_schema.columns where table_schema='public' and table_name='auth_user”语句。

import sys
import psycopg2
import psycopg2.extras

# 数据库连接参数,生产环境中应放到独立文件。
db_param = {
# 我使用的是docker容器部署的,容器名称为“db”,所以主机为“db”,如果是在本机就为“localhost”
    "host": "db",
# 数据库名
    "database": "postgres",
# 登录数据库的用户名
    "user": "postgres",
# 登录数据库的用户
    "password": "postgres"
}

#创建数据库连接
def connection(param_dic):
    conn = None
    try:
        print('连接 PostgreSQL 数据库...')
        conn = psycopg2.connect(**param_dic)
    except(Exception, psycopg2.DatabaseError) as error:
        print(error)
        sys.exit(1)
    print("数据库连接成功")
    return conn
def query_table(conn):
    """
    查看表结构
    conn:数据库连接
    """
    #列名。对应数据库中的字段
    tb_columns=[]
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
    with conn:
         #查询表结构
        cur.execute("select column_name from information_schema.columns where table_schema='public' and table_name='auth_user'")
        result = cur.fetchall()
        for row in result:
            #构建列
            tb_columns+=row
        print(tb_columns)
        cur.close()
query_table(connection(db_param))

使用python运行该程序,可以看到输出的结果:

连接 PostgreSQL 数据库...
数据库连接成功
['id', 'password', 'last_login', 'is_superuser', 'username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined']