Python

Cara Menggunakan Saluran Django

Cara Menggunakan Saluran Django
Django adalah kerangka kerja Python populer yang digunakan untuk mengembangkan aplikasi web menggunakan using WGSI (Antarmuka Gateway Server Web) dan ASGI (Asynchronous Server Gateway Interface) spesifikasi server. WGSI digunakan untuk mengembangkan aplikasi Python sinkron, dan AGSI digunakan untuk mengembangkan aplikasi web asinkron dan sinkron. Saluran adalah fitur berguna dari Django yang digunakan untuk menangani WebSocket, protokol obrolan, dll. di samping protokol HTTP. Saluran dibangun di atas spesifikasi server ASGI. Sesi komunikasi interaktif dua arah antara browser pengguna dan server dapat dibuka menggunakan sebuah WebSocket. Klien memulai WebSocket koneksi dan server merespons dengan menerima atau Menutup pesan. Itu WebSocket pesan didorong ke saluran menggunakan produsen dan dikirim ke konsumen yang mendengarkan di saluran. Tutorial ini menunjukkan cara menggunakan saluran untuk menangani WebSocket pesan.

Prasyarat

Sebelum mempraktikkan skrip yang ditunjukkan dalam tutorial ini, pastikan untuk menyelesaikan tugas-tugas berikut:.

Siapkan Aplikasi Django

Jalankan perintah berikut untuk membuat aplikasi Django bernama socketapp:

$ python3 kelola.py startapp socketapp

Jalankan perintah berikut untuk menginstal saluran:

$ pip menginstal saluran

Tambahkan saluran dan nama aplikasi ke INSTALLED_APP bagian dari pengaturan.py mengajukan:

INSTALLED_APPS = [

'saluran',
'socketapp'
]

Tentukan nilai ASGI_APPLICATION di pengaturan.py mengajukan:

ASGI_APPLICATION = 'channel_pro.asgi.aplikasi'

Buat folder bernama template di dalam socketapp folder dan atur lokasi template aplikasi di TEMPLATE bagian dari pengaturan.py mengajukan:

TEMPLATE = [

… .
'DIRS': ['/home/fahmida/channel_pro/socketapp/templates'],
… .
,
]

Output berikut akan muncul di terminal setelah menjalankan server Django. Outputnya menunjukkan bahwa ASGI/Channels versi 3.0.3 sedang berjalan.

Buat file template bernama indeks.html di lokasi template yang ditentukan untuk menampilkan data yang dikirim oleh WebSocket. Objek soket yang dibuat menggunakan JavaScript akan membaca data menggunakan JSON.parse() metode, lalu berikan nilai ke dalam konten

tag yang berisi nilai ID, 'msg.'

indeks.html





Tutorial Saluran Django




teks




Ubah dilihat.py file dari socketapp dengan konten berikut. Itu indeks.html file template akan ditampilkan di browser dengan teks variabel ketika indeks() metode skrip ini dipanggil dari url.py mengajukan. Jika tidak ada pesan yang dikirim dari soket, maka teks 'LinuxPetunjuk' akan ditampilkan di browser.

dilihat.py

# Impor modul render dari Django
dari django.pintasan impor render
# Buat fungsi indeks untuk menampilkan file HTML ke dalam browser
indeks def (permintaan):
kembali render(permintaan, "indeks.html", konteks='teks': 'LinuxHint')

Ubah url.py file dari socketapp dengan konten berikut. Dua jalur didefinisikan dalam skrip: 'admin/' jalur digunakan untuk membuka Dasbor Administrasi Django, dan 'pesan/' jalur digunakan untuk membaca pesan WebSocket.

url.py

dari django.kontribusi impor admin
dari django.jalur impor url
dari tampilan impor socketapp
pola url = [
jalur('admin/', admin.situs.url),
jalur('pesan/', tampilan.indeks)
]

Ketika URL berikut dijalankan tanpa mendefinisikan file konsumen dan perutean, protokol HTTP akan berfungsi dan output berikut akan muncul:.

http://localhost:8000/msg

Sekarang, buat konsumen.py file di dalam socketapp folder dengan skrip berikut:. Itu Menghubung() metode dari ws_konsumen akan digunakan untuk menerima koneksi soket, membaca nilai waktu saat ini setiap detik, dan mengirim waktu saat ini dalam format JSON melalui WebSocket ketika metode ini dipanggil dari file perutean.

konsumen.py

# Impor modul JSON
impor json
# Impor WebsocketConsumer
dari saluran.umum.websocket impor WebsocketConsumer
# Impor modul waktu-tanggal
dari datetime impor datetime
# Impor modul tidur
dari waktu impor tidur
# Tentukan kelas konsumen untuk mengirim data melalui WebsocketConsumer
kelas ws_consumer(WebsocketConsumer):
def terhubung (sendiri):
diri.menerima()
sementara (Benar):
sekarang = tanggal waktu.sekarang()
diri.kirim(json.dumps('timeValue': sekarang.strftime("%H:%M:%S")))
tidur(1)

Buat rute.py di dalam socketapp folder dengan skrip berikut:. 'pesan/' jalur didefinisikan dalam skrip untuk memanggil konsumen untuk mengirim data ke soket.

rute.py

dari django.jalur impor url
dari .konsumen mengimpor ws_consumer
# Tetapkan jalur untuk memanggil konsumen
ws_urlpatterns = [
jalur('pesan/', ws_consumer.as_asgi())
]

Ubah asgi.py file dengan skrip berikut:. Modul yang diperlukan untuk menangani permintaan HTTP dan WebSocket diimpor dalam skrip.

asgi.py

# Impor modul os
impor os
# Impor get_asgi_application untuk menangani protokol http
dari django.inti.asgi impor get_asgi_application
# Impor ProtocolTypeRouter dan URLRouter untuk mengatur perutean soket web
dari saluran.perutean impor ProtocolTypeRouter, URLRouter
# Impor AuthMiddlewareStack untuk menangani soket web
dari saluran.impor auth AuthMiddlewareStack
# Impor perutean soket web
dari socketapp.merutekan impor ws_urlpatterns
# Tetapkan nilai untuk Django_SETTINGS_MODULE
os.mengepung.setdefault('DJAGO_SETTINGS_MODULE', 'channel_pro.pengaturan')
# Tentukan variabel aplikasi untuk menangani http dan websocket
aplikasi = ProtocolTypeRouter(
'http': get_asgi_application(),
'websocket': AuthMiddlewareStack(URLRouter(ws_urlpatterns))
)

Sekarang, jalankan kembali URL berikut dari browser untuk membaca data dari WebSocket.

http://localhost:8000/msg/

Jika konsumen dan router berfungsi dengan baik, maka jam digital berikut akan ditampilkan di browser:. Di sini, router telah mengirim permintaan WebSocket menggunakan 'pesan/' jalur ke konsumen yang telah menerima permintaan dan mengirim data ke template untuk menunjukkan jam digital di browser di mana nilai kedua dari waktu saat ini diperbarui setiap detik.

Kesimpulan

Tutorial ini menunjukkan kepada Anda bagaimana menerapkan aplikasi waktu nyata menggunakan kerangka kerja dan saluran Django dengan membuat jam digital sederhana. Jenis aplikasi waktu nyata lainnya juga dapat diimplementasikan menggunakan Django dan saluran, seperti sistem obrolan online. Skrip yang digunakan dalam tutorial ini hanya berfungsi untuk Django versi 3+ dan Saluran versi 3+ saja. Jadi, jika Anda menggunakan versi Django atau Saluran sebelumnya, maka Anda perlu meningkatkan versi sebelum menguji skrip yang disediakan dalam tutorial ini.

Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...
Tambahkan gerakan Mouse ke Windows 10 menggunakan alat gratis ini
Dalam beberapa tahun terakhir, komputer dan sistem operasi telah berkembang pesat. Ada saat ketika pengguna harus menggunakan perintah untuk menavigas...
Kontrol & kelola gerakan mouse di antara beberapa monitor di Windows 10
Manajer Mouse Tampilan Ganda memungkinkan Anda mengontrol & mengonfigurasi gerakan mouse di antara beberapa monitor, dengan memperlambat gerakannya di...