Meskipun ini tidak sepenuhnya dalam roh SO, saya suka pertanyaan ini, karena saya memiliki masalah yang sama ketika saya mulai, jadi saya akan memberi Anda panduan cepat. Jelas Anda tidak memahami prinsip-prinsip di belakang mereka (jangan menganggapnya sebagai pelanggaran, tetapi jika Anda melakukannya Anda tidak akan bertanya).
Django adalah sisi server . Artinya, katakanlah klien membuka URL, Anda memiliki fungsi di dalamnya views
yang membuat apa yang dilihatnya dan mengembalikan respons dalam HTML. Mari kita bagi menjadi contoh:
views.py:
def hello(request):
return HttpResponse('Hello World!')
def home(request):
return render_to_response('index.html', {'variable': 'world'})
index.html:
<h1>Hello {{ variable }}, welcome to my awesome site</h1>
urls.py:
url(r'^hello/', 'myapp.views.hello'),
url(r'^home/', 'myapp.views.home'),
Itu adalah contoh dari penggunaan paling sederhana. Pergi 127.0.0.1:8000/hello
berarti permintaan ke hello()
fungsi, 127.0.0.1:8000/home
akan mengembalikan index.html
dan mengganti semua variabel seperti yang diminta (Anda mungkin sudah tahu semua ini sekarang).
Sekarang mari kita bicara tentang AJAX . Panggilan AJAX adalah kode sisi klien yang melakukan permintaan asinkron. Kedengarannya rumit, tetapi itu berarti ia melakukan permintaan untuk Anda di latar belakang dan kemudian menangani respons. Jadi ketika Anda melakukan panggilan AJAX untuk beberapa URL, Anda mendapatkan data yang sama dengan yang Anda dapatkan ketika pengguna pergi ke tempat itu.
Misalnya, panggilan AJAX ke 127.0.0.1:8000/hello
akan mengembalikan hal yang sama seperti jika Anda mengunjunginya. Hanya saja kali ini, Anda memilikinya di dalam fungsi JavaScript dan Anda bisa mengatasinya sesuka Anda. Mari kita lihat contoh penggunaan sederhana:
$.ajax({
url: '127.0.0.1:8000/hello',
type: 'get', // This is the default though, you don't actually need to always mention it
success: function(data) {
alert(data);
},
failure: function(data) {
alert('Got an error dude');
}
});
Proses umumnya adalah ini:
- Panggilan masuk ke URL
127.0.0.1:8000/hello
seolah-olah Anda membuka tab baru dan melakukannya sendiri.
- Jika berhasil (kode status 200), lakukan fungsi untuk sukses, yang akan mengingatkan data yang diterima.
- Jika gagal, lakukan fungsi yang berbeda.
Sekarang apa yang akan terjadi di sini? Anda akan mendapatkan peringatan dengan 'hello world' di dalamnya. Apa yang terjadi jika Anda melakukan panggilan AJAX ke rumah? Hal yang sama, Anda akan mendapatkan peringatan yang menyatakan <h1>Hello world, welcome to my awesome site</h1>
.
Dengan kata lain - tidak ada yang baru tentang panggilan AJAX. Mereka hanya cara bagi Anda untuk membiarkan pengguna mendapatkan data dan informasi tanpa meninggalkan halaman, dan itu membuat desain situs web Anda mulus dan sangat rapi. Beberapa pedoman yang harus Anda perhatikan:
- Pelajari jQuery . Saya tidak bisa cukup menekankan hal ini. Anda harus memahaminya sedikit untuk mengetahui bagaimana menangani data yang Anda terima. Anda juga perlu memahami beberapa sintaks dasar JavaScript (tidak jauh dari python, Anda akan terbiasa dengannya). Saya sangat merekomendasikan tutorial video Envato untuk jQuery , mereka sangat bagus dan akan menempatkan Anda di jalan yang benar.
- Kapan menggunakan JSON? . Anda akan melihat banyak contoh di mana data yang dikirim oleh pandangan Django di JSON. Saya tidak merinci hal itu, karena tidak penting bagaimana melakukannya (ada banyak penjelasan berlimpah) dan jauh lebih penting ketika . Dan jawabannya adalah - data JSON adalah data berseri. Yaitu, data yang dapat Anda manipulasi. Seperti yang saya sebutkan, panggilan AJAX akan mengambil respons seolah-olah pengguna melakukannya sendiri. Sekarang katakan Anda tidak ingin mengacaukan semua html, dan alih-alih ingin mengirim data (daftar objek mungkin). JSON baik untuk ini, karena mengirimkannya sebagai objek (data JSON terlihat seperti kamus python), dan kemudian Anda dapat beralih di atasnya atau melakukan sesuatu yang menghilangkan kebutuhan untuk menyaring html yang tidak berguna.
- Tambahkan yang terakhir . Ketika Anda membangun aplikasi web dan ingin menerapkan AJAX - bantulah diri Anda sendiri. Pertama, buat seluruh aplikasi sepenuhnya tanpa AJAX apa pun. Lihat bahwa semuanya berfungsi. Kemudian, dan baru setelah itu, mulailah menulis panggilan AJAX. Itu adalah proses yang baik yang membantu Anda belajar banyak juga.
- Gunakan alat pengembang chrome . Karena panggilan AJAX dilakukan di latar belakang, terkadang sangat sulit untuk melakukan debug. Anda harus menggunakan alat pengembang chrome (atau alat serupa seperti pembakar) dan
console.log
hal - hal untuk debug. Saya tidak akan menjelaskan secara detail, hanya google sekitar dan mencari tahu tentang hal itu. Ini akan sangat membantu Anda.
- Kesadaran CSRF . Akhirnya, ingat bahwa permintaan posting di Django memerlukan
csrf_token
. Dengan panggilan AJAX, sering kali Anda ingin mengirim data tanpa menyegarkan halaman. Anda mungkin akan menghadapi beberapa masalah sebelum akhirnya Anda mengingatnya - tunggu, Anda lupa mengirim csrf_token
. Ini adalah penghalang bagi pemula yang dikenal dalam integrasi AJAX-Django, tetapi setelah Anda belajar cara membuatnya bermain bagus, mudah seperti pie.
Itu semua yang ada di kepalaku. Ini subjek yang luas, tapi ya, mungkin tidak ada cukup contoh di luar sana. Kerjakan saja di sana, perlahan-lahan, Anda akan mendapatkannya pada akhirnya