Python Django使用自定义SQL而不是模型将JSON对象返回到模板

Python Django使用自定义SQL而不是模型将JSON对象返回到模板,python,mysql,json,django,Python,Mysql,Json,Django,我目前能够从models.py和MySQL数据库中检索JSON数据/对象,并将该JSON对象发送到我的模板。如何使用自定义SQL从MySQL检索数据,然后将其转换为JSON对象发送到我的模板。我基本上不想使用models.py。以下是我在使用models.py时在我的views.py中看到的内容: def startpage(request): platforms = Platform.objects.select_related().values('platformtype')

我目前能够从models.py和MySQL数据库中检索JSON数据/对象,并将该JSON对象发送到我的模板。如何使用自定义SQL从MySQL检索数据,然后将其转换为JSON对象发送到我的模板。我基本上不想使用models.py。以下是我在使用models.py时在我的views.py中看到的内容:

def startpage(request):
    platforms = Platform.objects.select_related().values('platformtype')
    return render(request, 'HTML1.html', {'platforms_as_json' : json.dumps(list(platforms)),})
这就是我到目前为止所做的:

def my_custom_sql(self):
    cursor = connection.cursor()
    cursor.execute("SELECT platformtype FROM Platform", [self.Platform])
    row = cursor.fetchone()
    return row
除了不使用models.py和在视图中使用自定义SQL查询之外,我如何能够做同样的事情?多谢各位

更新:

def startpage(request):
    platforms = my_custom_sql()
    return render(request, 'Html1.html', {'platforms_as_json' : json.dumps(list(platforms)), })


def my_custom_sql():
    cursor = connection.cursor()
    cursor.execute("SELECT HWPlatformName FROM hwplatform", None)
    rows = cursor.fetchall()
    return rows

现在我可以将数据放到我的模板上,但我不相信它会给我正确的JSON格式。

如果您想要模型的实例,您需要在objects属性上查找方法

platforms = Platform.objects.raw('SELECT * FROM Platform')
如果只是从服务器中查找内容,则可以从SQL查询返回值:

platforms = my_custom_sql() # Or call my_custom_sql statically.

如果要查找延迟填充,可以将
yield
语句放入
my\u custom\u sql
函数中。

为什么要避免使用模型?这是使用Django(带迁移)的卖点之一(1)。您看过吗?(2.)埃米尔·赛迪知道,我以前用过它们,模型让生活变得如此轻松。我需要为我的web应用程序编写其他脚本,不想依赖Django模型。是的,我看过文档。你可以在外部脚本中使用Django模型,所以这不是一个很有说服力的理由。没错,但这更多的是一种学习经验。我也不希望在MySQL数据库中创建所有django和admin表。我认为raw方法会为您提供一个模型对象,对吗?我的目标是不使用任何模型对象。这可能吗?@Carbon补遗有帮助吗?我尝试过platforms=my_custom_sql(),但当我尝试运行Django服务器时,它给了我错误。如果我的数据库有一个名为“Platform”的表和列“Platform\u ID”和“platformtype”,则会显示“my\u custom\u sql()缺少1个必需的位置参数:'self'”