如何在views.py
中使用原始SQL执行以下操作?
from app.models import Picture
def results(request):
all = Picture.objects.all()
yes = Picture.objects.filter(vote='yes').count()
return render_to_response(
'results.html',
{'picture':picture, 'all':all, 'yes': yes},
context_instance=RequestContext(request)
)
这个results
函数是什么样子的?
7条答案
按热度按时间zazmityj1#
使用WHERE子句筛选赞成票:
ibps3vxo2#
The Django Documentation is really really good.基本上有两种执行原始SQL的方法。可以使用
Manager.raw()
执行返回模型示例的原始查询,也可以避开模型层直接执行自定义SQL。使用
raw()
管理器:如果你想直接绕过模型层,你可以使用
django.db.connection
,它代表默认的数据库连接:sczxawaw3#
如果您使用的是PostgreSQL,则可以在一个查询中完成。如果不是,则可以相应地更改查询并获得结果。
kb5ga3dv4#
具有特定数据库名称的原始sql:
database_name =用户创建的任何数据库
table_name =用户创建的任何表名
uklbhaso5#
你可以试试这个
rt4zxlrg6#
**raw()**方法可用于执行返回模型示例的原始sql查询。
如果你可能执行的查询没有清晰地Map到模型.. django.db.connection代表默认的数据库连接,所以调用**connection.cursor()**来使用数据库连接。请参阅文档
q8l4jmvw7#
例如,您有**
Person
型号**,如下所示:然后,您可以使用
cursor.execute()
运行原始SQL查询,并使用cursor.fetchall()
获得如下所示的结果。*文档对此进行了详细说明:控制台上的输出:
并且,您还可以使用交易,如下图所示:
或者:
或者:
以下这些日志是PostgreSQL查询日志。* 我使用了PostgreSQL,我的答案解释了如何记录包含事务查询的PostgreSQL查询: