Forutsetninger
Før du øver skriptet som vises i denne opplæringen, må du fullføre følgende oppgaver.
Sett opp en Django -app
Kjør følgende kommando for å opprette en Django -app som heter socketapp:
$ Python3 Administrer.py startapp socketappKjør følgende kommando for å installere kanalen:
$ pip installer kanalerLegg til kanalene og appnavnet til Installert_app del av Innstillinger.py fil:
Installert_apps = [Definer verdien av ASGI_Application i Innstillinger.py fil:
ASGI_Application = 'Channel_Pro.Asgi.applikasjon'Opprett en mappe som heter Maler inne i socketapp mappe og angi malens plassering av appen i Maler del av Innstillinger.py fil:
Maler = [Følgende utgang vises i terminalen etter å ha kjørt Django -serveren. Utgangen viser at ASGI/kanaler versjon 3.0.3 kjører.
Opprett en malfil som heter indeks.html på den definerte malstedet for å vise dataene som er sendt av websocket. Socketobjektet som er opprettet ved hjelp av JavaScript vil lese dataene ved hjelp av JSON.parse () -metode, og deretter gi verdien inn i innholdet i
indeks.html
Endre utsikt.py fil av socketapp Med følgende innhold. De indeks.html Malfilen vises i nettleseren med tekst variabel når indeks () metode for dette skriptet kalles fra URLS.py fil. Hvis ingen melding overføres fra stikkontakten, så er teksten 'Linuxhint'vil vises i nettleseren.
utsikt.py
# Import Render Module fra DjangoEndre URLS.py fil av socketapp Med følgende innhold. To stier er definert i manuset: 'admin/'Sti brukes til å åpne Django Administration Dashboard, og'msg/'Sti brukes til å lese websocket -meldingen.
URLS.py
Fra Django.bidra importadministratorNår følgende URL utføres uten å definere forbruker- og rutingsfiler, vil HTTP -protokollen fungere, og følgende utdata vises.
http: // localhost: 8000/msg
Nå, lage en forbrukere.py fil inne i socketapp mappe med følgende skript. De koble() Metode av ws_consumer vil bli brukt til å akseptere sokkelforbindelsen, lese gjeldende tidsverdi hvert sekund og sende gjeldende tid i JSON -format via WebSocket når denne metoden kalles fra rutingsfilen.
forbrukere.py
# Importer JSON -modulOpprett ruting.py inne i socketapp mappe med følgende skript. 'msg/'Stien er definert i skriptet for å ringe forbrukeren for å sende dataene til kontakten.
ruting.py
Fra Django.URLS importerer baneEndre Asgi.py fil med følgende skript. Modulene som kreves for å håndtere HTTP- og websocket -forespørsler importeres i skriptet.
Asgi.py
# Importer OS -modulKjør nå følgende URL fra nettleseren igjen for å lese dataene fra websocket.
http: // localhost: 8000/msg/
Hvis forbrukeren og ruteren fungerer som den skal, vises følgende digitale klokke i nettleseren. Her har ruteren sendt websocket -forespørselen ved hjelp av 'msg/'Bane til forbrukeren som har akseptert forespørselen og sendt dataene til malen for å vise den digitale klokken i nettleseren der den andre verdien av gjeldende tid oppdateres hvert sekund.
Konklusjon
Denne opplæringen viste deg hvordan du implementerer en sanntidsapplikasjon ved hjelp av Django-rammeverket og kanalene ved å lage en enkel digital klokke. Andre typer sanntidsapplikasjoner kan også implementeres ved hjelp av Django og kanaler, for eksempel nettpratsystemer. Skriptene som brukes i dette opplæringsarbeidet for Django -versjoner 3+ og kanalversjoner 3+. Så hvis du bruker en tidligere Django- eller kanalversjon, må du oppgradere versjonen før du tester skriptet som er gitt i denne opplæringen.