배웠던 python 과 django를 이용해서 인스타그램의 회원가입, 로그인, 포스팅에서 코멘트의 백엔드 부분을 기초적인 부분만 따라만들어보고자 한다.
(솔직히 말하면 계획잡고 하기보다는 정말 아무생각없이 일단 진행하고있다.)
장고 프로젝트를 생성하기 전에 가상환경 셋팅을 하자. 가상환경을 셋팅해야 언어 및 프레임워크 버젼이 달라서 생기는 충돌을 방지할 수 있다.
나는 배운대로 일단 miniconda로 하겠다. miniconda는 설치되있다는 가정하에 진행하겠다.
conda create -n westagram python=3.8
# westagram_project : 생성될 가상환경의 이름이다.
# python=3.8 : 파이썬 버젼을 명시안해주면 다른 버젼의 파이썬이 설치된다.
설치중에 y/n 선택사항이 나오는데 y를 입력해주자.
가상환경이 생성되고 conda env list
라고 명령어를 입력하면 설치된 가상환경의 리스트가 출력된다.
그리고 이제 가상환경에 들어가서 장고 설치 및 프로젝트 생성 등을 해보자.
conda activate westagram
터미널의 앞쪽에 (westagram)
이라고 가상환경 이름이 생기면 가상환경에 들어가길 완료한 것이다.
이제 가상환경에 장고를 설치하자. 장고도 파이썬처럼 가상환경 상태에서 위에서 말한 충돌이 일어나지 않는다.
장고를 설치하려면 아래 명령으롤 입력하면 된다.
pip install django
최신 버젼의 장고가 설치될것이다.
프로젝트 디렉토리를 생성할 디렉토리에서 프로젝트를 생성해보자. 프로젝트 생성은 아래의 명령어로 진행된다.
django-admin startproject westagram_project
# westagram_project : 프로젝트명
그러면 westagram_project
디렉토리에 manage.py
파일과 westagram_project
디렉토리가 또 생겼다. 또 생긴 디렉토리에는 __init.py__
, asgi.py
, settings.py
, urls.py
, wsgi.py
파일들이 들어있을것이다.
겉 껍데기의 이름은 중요하지 않다.
manage.py
: 플젝트를 실행하고 관리하는 역할을 한다. 서버를 실행하는 등 대부분의 작업을 이 파일가지고 하게된다. 프로젝트에 할당된 실행자이다.
__init.py__
: 모듈이 모듈로서 있기위해서 존재하는 파일이다.__
는 파이썬에서 스페셜메소드이다.
setting.py
: 설정을 다루는 곳이다.
urls.py
: 경로에 대한 정리를 하고 이야기를 하는 파일이다. 해당 프로젝트의 기준이되는 경로를 다룬다.
asgi.py
: 비동기 서버. 서버를 올려주는 인터페이스. 서버 역할을 해주는 파이썬 파일이다. 비동기는 채팅서비스를 떠올리면 이해하기 쉽다.
wsgi.py
: 웹서버를 도와주는 파일이다.
밑에 두 개는 지금 현재는 딱히 다룰일이 없다. 그냥 이용하는 라이브러리라고 생각하고 넘어가자.
westagram_project
디렉토리는 메인이 되는 디렉토리이다.
settings.py
프로젝트 진행전에 settings.py
을 설정해줘야한다.
해당 파일을 열어보면 여러가지 코드들이 있는데 이중에서 사용하지 않을 설정을 주석처리해주겠다.
기존에 만들어진 admin이나 auth, csrf 등 권한, 보안 부분을 주석처리하자.
INSTALLED_APPS = [
# 'django.contrib.admin',
# 'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
# 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
admin 부분을 쓰지 않을 예정이니, 추가로 urls.py
에 설정된 admin 부분을 삭제해줘야한다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('', admin.site.urls),
]
->
from django.urls import path
urlpatterns = [
]
이제 기본적인 셋팅이 끝났다.