Django與Ajax教程(三)
來源:互聯網
上載者:User
標籤: web python django ajax 休閑 原文地址: [url]http://www.willarson.com/blog/?p=38[/url]
第三部分:Django與Prototype:Ajax Request(非對稱模式發送資料) Ajax另一個常用的功能是發送資料到伺服器但不強制使用者重新載入他們所在的整個頁面。在Django與Ajax教程的第三節中我們將要向Server發送Django產生表單的內容。(Request和Upater不同之處是Requset對象不需要伺服器進行應答,下面將更加深入的進行解釋。)你可以從這裡得到本節例子的源碼。
Ajax Request文法和目的 Ajax.Requst負責的是從網頁到伺服器的單向交流。它大概就像網頁說“嗨,這傢伙建立了一個帳號,我已經知道該怎麼做了,所以不要理會給我的指令”,或者可能像網頁說:“server my man, you have a new comment to hold onto until someone can approve it.(你有一條新的評論需要保持直到有人批准它--這句話不太明白是嘛意思)”當你希望使用Ajax.Request從伺服器得到一些HTML來填充div,或者從伺服器得到任何種類的響應時,它是沒有用的,你將什麼也得不到。 Ajax.Request 的文法為: new Ajax.Request(‘url/to/send/to’, config) URL Ajax Updater … var post = ‘id=’ + id;
new Ajax.Request(‘category/remove/’, {asynchronous: true, method:‘post’, postBody:post});
new Ajax.Request(‘category/add’, {asynchronous: true, parameters:Form.serialize(form)}); Prototype Form
在Django應用中使用Ajax.Request 在文章開始我們就談到,我們要建立一個有簡單表單的頁面,當我們按下提交按鈕的時候表單就會被發送到伺服器。在發送後我們將會使用 庫來重設這個表單。 JavaScript
修改urls.py ajaxapp/urls.pyajaxapp/urls.py修Views 我們需要在視圖中添加兩個函數---。我們也會將表單和視圖寫在一起(在一個大的工程中最好將模型從視圖中獨立出來)。 模型會有兩個欄位,一個。我們將通過函數去渲染”變數傳給了它。 我們還需要建立 執行個體,或者可能通過新值來更新現有執行個體。幸好很容易從表單中擷取索引值。 請注意,因為我們接收到的是一個通過 資料來轉換成為一個已建立的表單的執行個體。就像下面這樣簡單: def send(request):
post = request.POST
form = CommentForm(post) form_for_model form.save() Model views.py 我們這個例子只需要一個簡單的模板,它將用來顯示前面建立的來覆蓋表單預設的提交處理。這個模板擴充自我們在教程第一部分建立的預設方法的。因為我們在調用中返回了的庫中的一個便利的方法來序列化這個表單。可以使用文章開頭附近第一個例子的文法來建立你自己任意的,模板的建立,以及視圖的編碼:一切搞定。 python manage.py runserver Scriptaculous<span times="" new="" roman';="" mso-ansi-language:="" en-us;="" mso-fareast-language:="" zh-cn;="" mso-bidi-language:="" ar-sa;="" mso-bidi-font-size:="" 11.0pt;="" mso-font-kerning:="" 1.0pt"="" style="padding: 0px; margin: 0px; font-size: 10.5pt;">來拖放列表。