使用Django执行原始SQL查询

时间:2016-11-24 12:45:53

标签: python mysql django django-queryset

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

例如:

用户想要搜索我桌上名为' Dupont'的所有人。并住在纽约

在我的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但暂时没有结果......

非常感谢你!

1 个答案:

答案 0 :(得分: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 %}
相关问题