我正在开发一个支持Django和PostgreSQL的Web应用程序。我正在使用Psycopg2连接我的PostgreSQL数据库。我试图在Home.html文档中列出我数据库中的所有表。
我在Home.html文档中显示这个问题时遇到了麻烦。下面我已经包含了我的代码。
models.朋友
from django.db import models
import psycopg2
# Create your models here.def __init__(self, db='giquery-data'):
class Tables(models.Model):
conn = psycopg2.connect("dbname='giquery-data' user='postgres' host='localhost' password='admin'")
cur = conn.cursor()
# """SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA='public'"""
cur.execute("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE' AND TABLE_SCHEMA='public'")
rows = cur.fetchall()
views.朋友
from django.shortcuts import render
from django.http import HttpResponse
from .models import Tables
from django.template import loader
# Create your views here.
def index(request):
all_tables = Tables.rows
template = loader.get_template('tablesearch/home.html')
context = {
'all_tables': all_tables
}
return HttpResponse(template.render(context, request))
Home.html中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for rows in all_tables %}
<li>
{{ rows.table_catalog }} - {{ rows.table_name }} Test
</li>
{% endfor %}
</ul>
</body>
</html>
目前,我的结果如下:
如何在Home.html上显示数据库表的名称?
这些值看起来像普通元组,并且您无法通过rows.table_name
等属性名称访问元组元素。尝试通过数字索引访问值:{{ rows.2 }}
(或列号的任何内容。)