2016-11-24 128 views
-1

我正在寻找使用Django创建一些SQL queries,但我没有显示结果。 此查询非常重要,因为我想配置客户端使用的研究栏。使用Django执行原始SQL查询

例如:

用户想要搜索我的表中所有的人都被命名为“杜邦”和住在新泽西,纽约

在我views.py,我已经写了这样的事情:

def Test(request) : 

    cursor = connection.cursor() 
    cursor.execute('''SELECT * FROM BirthCertificate_people WHERE `name` = "Dupont" AND `city` = "New-York"''') 
    row = cursor.fetchone() 

    print row 

    template = loader.get_template('test.html') 
    return HttpResponse(template.render(request)) 

在我的模板文件test.html

<h2 align="center"> SQL Queries display </align> </h2> 

{% block content %} 

<!-- What I write there --> {{ }} 

{% endblock %} 

我不知道如何在我的.html文件中显示SQL查询结果。

我读了一些教程:Django Raw SQL Query但没有结果的那一刻..

太谢谢你了!

+3

我不明白你在问什么。首先,这是一个在ORM中表达的简单查询;其次,通过将数据传递给模板上下文,您将显示数据,就像您在Django中显示*任何其他数据一样。 –

+0

我使用ORM查询,它的工作原理。因为这是第一次,我没有这种方法。 – Deadpool

回答

5

您需要将该行作为上下文传递,以便可以在html中对其进行访问。要做到这一点的方法之一是 1)内,您的views.py进口呈现

from django.shortcuts import render 

2)现在通过模板和背景在一起

def Test(request) : 

    cursor = connection.cursor() 
    cursor.execute('''SELECT * FROM BirthCertificate_people WHERE `name` = "Dupont" AND `city` = "New-York"''') 
    row = cursor.fetchone() 

    print row 

    context = {"row":row} 
    return render(request, "test.html", context) 

3)现在你的模板内“的test.html “你可以访问你的行: -

<h2 align="center"> SQL Queries display </align> </h2> 

{% block content %} 

{{ row }} 

{% endblock %}