我目前有一个名为myVariableToSend的javascript变量,它包含一个字符串,我需要发送到我的视图中,我可以使用原始SQL查询从数据库中收集相应的数据,它回到我的JavaScript。以下是我有:将Javascript变量传递给Django与getJSON的views.py
的Javascript:
function scriptFunction(myVariableToSend){
$.getJSON("http://127.0.0.1:8000/getData/", myVariableToSend, function(serverdata){
window.alert(serverdata);
});
Views.py:
def getData(request):
some_data = request.GET(myVariableToSend)
cursor = connection.cursor()
cursor.execute("SELECT Car_ID FROM cars WHERE Carname = %s ", [some_data])
row = cursor.fetchall()
return JsonResponse(row, safe = False)
Urls.py:
url(r'^admin/', include(admin.site.urls)),
url(r'^$', startpage),
url(r'^getData/$', getData),
我不不认为我的服务器端脚本(views.py)正在工作,因为当我运行我的服务器时,我得到一个http500错误。任何帮助,将不胜感激。谢谢。
UPDATE:
我发现,当我注释掉我的整个Views.py只有放
def getData(request):
return JsonResponse({"hello":"World"}, safe = False)
我没有得到任何的问题和AJAX请求工作。但是当我有我的原始getData时,它不起作用。当我在我的views.py加入这一行:
some_data = request.GET(myVariableToSend)
,我得到一个错误和数据不显示
为什么使用原始SQL查询?你没有想出Django的核心特性ORM吗?那么你应该真的做的教程。 –
是的,我知道Django的ORM,但我想这样做。它用于学习目的。 – Carbon
您应该将DEBUG设置为True。如果你这样做了,你会看到你在该函数的第一行中得到一个NameError,因为变量myVariableToSend没有被定义。 –