[Django] Django channels

윤찬효·2023년 7월 4일
0

django channels

목록 보기
2/2
post-custom-banner

개념에 대해 알아 본 뒤에 실습을 해보자.


준비

django-admin startproject site
py manage.py startapp chat

프로젝트와 앱을 생성

# site/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'chat',
]

앱을 생성한 뒤에 앱을 추가

# site/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("chat/", include("chat.urls")),
]

생성한 앱을 url로 연결



Channels 라이브러리

pip install channels

channels 라이브러리 설치

# site/routing.py
from channels.routing import ProtocolTypeRouter

application = ProtocolTypeRouter({
    # (http->django views is added by default)
})

새로운 파일을 만들고 위의 내용을 추가

INSTALLED_APPS = [
    'channels',
    'chat',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

# Channels
ASGI_APPLICATION = 'mysite.routing.application'

settings에 channels 앱을 등록, ASGI_APPLICATION을 추가한다.
여기서 주의할 점은 channels 개발 서버가 다른 앱과 충돌할 수 잇으므로, 가장 위에 추가해야 하는 점이다.

이제 channels는 runserver 명령을 제어하고 django 개발 서버를 Channels 개발 서버로 대체하게 된다.
서버를 돌리게 되면 기존과 다른 방식으로 서버가 돌아가는 걸 확인할 수 있다.

Django version 2.2.3, using settings 'mysite.settings'
Starting ASGI/Channels version 2.2.0 development server at http://127.0.0.1:8000/

post-custom-banner

0개의 댓글