【发布时间】:2020-10-14 09:44:56
【问题描述】:
我使用 python 开发了许多 SQLite 查询(请参见下面的示例),我想通过 Django 网页发布查询结果。
我已经安装了 Django 并创建了链接到 SQLITEDB 的 ORM。
我的问题:有没有办法直接从 Django 调用这些查询(用 Python 创建)或它们的结果?还是我必须将这些查询重新编码为“Django”语言?
我已经开始在 views.py 和 HTML 页面下用兼容的“Django 语言”记录这些查询。恐怕我在重新编码时会浪费时间。欢迎任何可以提供帮助的建议或意见。
Python 中的查询示例:
cursor.execute(""" SELECT "AgentName", count (*) FROM "CSQ Agent Report" WHERE "AgentName" != "None"
AND "OriginatorDNHANDELED" = '1' or "OriginatorDNNOTHANDELED" = '1' Group by "AgentName" """)
liste8 = cursor.fetchall()
for i in range (len(liste8)):
print (liste8[i][0],liste8[i][1])
下面是我开始在 Django 视图中编码的内容和 Django 视图中的 HTML 页面
def home(request):
queryset = CsqAgentReport.objects.values('agentname').filter(csqnames__exact =
'CSQ_HDF*').filter(contactdisposition__contains='2').annotate(total=Count('nodeid_sessionid_sequenceno',distinct=True)).order_by('csqnames')
context = {
'object_list' : queryset,
}
在 html 文件中:
{% block content %}
<h1> Stats Call Center </h1>
<p> Total calls -- object_list</p>
<ul>
{% for var_nbr_app_repond in object_list %}
<li> {{var_nbr_app_repond.total}} appel(s)- {{var_nbr_app_repond.csqnames}}-
{{var_nbr_app_repond.agentname }}-{{var_nbr_app_repond.talktime }}</li>
{% endfor %}
</ul>
【问题讨论】:
-
docs.djangoproject.com/en/3.1/topics/db/sql/… 如果你使用它,你真的应该知道你在 sql 中做什么。如果您向公众开放您的服务器并且您的声明没有正确转义,您可能会遇到大问题。
-
这些查询仅供内部使用。不适用于公共网站,仅适用于有限群体的 N 内网。