簡體   English   中英

Javascript到Django views.py?

[英]Javascript to Django views.py?

這可能聽起來很簡單,但如何將我的index.html模板中的Javascript數組中的數據發送到我的views.py?

當用戶單擊“推薦”按鈕時,我的代碼調用一個訪問我的數據庫並在模板上打印名稱的函數。

def index(request):
    if(request.GET.get('Recommend')):
        sql_handler.recFunc()
        context['name'] = sql_handler.name
        return render(request, 'polls/index.html', context)

我在Javascript中有一個復選框值數組,這些值是在用戶按下“推薦”后計算的。 我想將它發送到我的索引視圖並將其用作另一個函數的參數。

所以:

def index(request):
    if(request.GET.get('Recommend')):
        sql_handler.recommend()
        context['name'] = sql_handler.name
        //something??
        tags = check_array_javascript
        context['tags'] = tags
        return render(request, 'polls/index.html', context)

我怎樣才能做到這一點? 我一直在尋找類似的問題,但我是Django和Web開發的新手,所以我要么不理解答案,要么他們沒有幫助我。

好吧,因此,為了從客戶端(JavaScript)向后端(您的Django應用程序)發送數據,您需要使用名為Ajax的東西,它代表異步JavaScript和XML。 基本上它的功能是允許您與后端服務進行通信,而無需重新加載頁面,您必須使用普通的POST或PUT表單提交。

最簡單的實現是使用jQuery jQuery首先是一個DOM操作庫,但自從它開始以來已經發展到包含更多的東西。

jQuery ajax調用看起來像這樣。

$(document).ready(function() {
    $.ajax({
        method: 'POST',
        url: '/path/to/your/view/',
        data: {'yourJavaScriptArrayKey': yourJavaScriptArray},
        success: function (data) {
             //this gets called when server returns an OK response
             alert("it worked!");
        },
        error: function (data) {
             alert("it didnt work");
        }
    });
});

然后可以在views.py檢查它

def index(request):
    if request.is_ajax():
        #do something
        request_data = request.POST
        return HttpResponse("OK")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM