我目前有一個名爲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沒有被定義。 –