1. venv 라이브러리를 이용해 가상 환경을 만들어주고 activate 시킨 다음 장고를 설치해준다
python -m venv 가상환경이름
source ~/가상환경이름/.../.../activate
pip install django==원하는 장고 버전
2. 프로젝트 생성
이 명령어를 입력하면 config 폴더가 자동으로 생성된다
# 프로젝트 디렉토리로 이동 후 cd~
# activate 가 된 걸 확인 한 후
django-admin startproject config .
이 때, 에러가 뜨면
필자의 에러는 두개 였는데 해결 방법은, 우분투에서의 python -V 버전과 1번에서 python -m venv 가상환경이름 이 명령어로 가상환경을 만들어 줄때의 파이썬 버전이 상이했기 때문에 나타나는 문제였다. 두 개의 파이썬 버전을 하나로 통일해야 제대로 설치가 되고 서버도 띄울 수 있다
1) couldn't import django. are you sure it's installed and available on your pythonpath environment variable? did you forget to activate a virtual environment?
2) could not install packages due to environment error
3. 개발 서버를 구동시키자
# 프로젝트 경로로 이동한 후
python manage.py runserver
# 특정 포트 번호를 지정하고 싶을 때에는
ptyhon manage.py runserver 원하는포트번호
4. config/settings.py
변경시켜줌
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
5. 앱 생성하기
# 원하는 프로젝트 경로에서
django-admin startapp 원하는앱이름
이렇게 하면 아까 config폴더가 생성된 동일한 위치에 [원하는앱이름] 이름의 폴더가 생성이 된다
6. config/urls.py -> 라우터라고 생각하면 될듯
2번방법으로 하면 앱이름/ 으로 시작하는 요청은 config/urls.py 파일이 아닌 앱이름/urls.py파일을 통해서 처리하게 됨
#~~config/urls.py 의 urlpatterns 에
#1번방법
from django.urls import
from 아까생성한앱이름 import views
path('원하는경로/', views.index)
#2번방법
from django.urls import, include
from 아까생성한앱이름 import views
path('원하는경로/', include('앱이름.urls')),
7. 앱이름/views.py
from django.http import HttpResponse
def index(request):
reutrn HTTPResponse("안녕하세요 블라블라")
장고 개발 흐름 요약
화면 -------> urls.py -----> views.py (이 두개가 로컬 서버이다) ----> 다시 화면
circle 구조
웹 브라우저 주소창에 localhost:포트번호/앱이름 을 입력하면
config/urls.py 파일에서 URL을 해석해서 앱이름/views.py 파일의 index함수를 호출
앱이름/view.py 파일의 index함수를 실행해서 함수 실행 결과를 웹 브라우저에 전달
서버 실행 시 나오는 경고메시지
1) You have 18 unapplied migrations
- admin, auth, contenttypes, sessions 앱과 관련된 내용이며 python manage.py migrate를 실행하면 확인 할 수 있음