Django_project 시작하기
Django_project Process
# 가상 환경 활성화 (venv : 가상 환경 이름)
activate venv
# 장고 프로젝트 시작
django-admin startproject myproject
# 장고 프로젝트 시작 후 소스트리 구조 확인
tree /f
# 기본 생성 파일에 대한 설명
- manage.py : 실행할때 사용하는 파일
- myproject/settings.py : 대부분의 설정 파일이 들어있다.
- urls.py : 전체 url을 관리하는 곳
- wsgi.py : 배포관련 파일이 들어있다.
# 서버 실행
python manage.py runserver
- cmd창에서 실행
- 실행 파일인 manage.py가 들어있는 폴더 안으로 들어가서 실행
- 서버 종료는 ctrl + c
python manage.py runserver 0.0.0.0:9200
- 외부에서도 접속이 가능하게 하려면 위와 같은 코드를 사용하여 서버를 실행시킨다.
- 서버를 실행 시키면 아래쪽에 주소가 뜬다. 복사해서 들어가면 GUI 환경에서 확인 가능
- 서버를 띄운 상태에서 코드에 에러가 있으면 CMD창에서 실시간으로 확인이 가능하기 때문에 코드 작성 시 확인하면서 작성하는 것이 좋다. 코드에 문제가 없으면 에러가 안뜨기 때문에 잘 실행이 된다.
# 앱(APP) 생성
python manage.py startapp blog
>> 내부구조 확인 (tree/f)
# 앱 생성 뒤 process
1> myproject/settings.py의 INSTALLED_APP에 새로 생성한 앱(blog)을 등록.
2> views.py에 index 함수와 test용으로 함수를 추가한다.
3> blog안에 urls.py를 새로 만들어서 안에 경로를 설정해준다.
- 경로 설정방법 urls.py을 생성하고 urlpatterns = [ path( '경로', views.함수이름 ) ]를 추가한다.
4> myproject/urls에 앱주소 추가 : blog가 있는 주소를 myproject가 알기 위해서 연결해준다.
5> 요청을 보내서 웹에서 확인하기
Django의 내부 처리 Process
1> myproject/settings.py의 ROOT_URLCONF
2> ROOT_URLCONF 모듈 로드 후 myproject/urls.py의 urlpatterns 변수 검색
3> URLCONF의 include를 통해 tree 구조로 확장
4> 작성된 리스트에서 url 패턴 순차 검색
5> 요청된 url과 일치하는 패턴을 찾으면 중단
6> View로 이동해서 실행
그 외 기본 설정에 관련된 요소
<URL Pattern>
1> URL 패턴의 끝은 /로 끝난다.
2> 첫번째 /는 내부적으로 추가되기 때문에 지정하지 않는다.
- /aa 가 아닌 aa/으로 작성한다.
<프로젝트의 urls.py>
1> Path('앱이름', include('앱이름.urls))로 추가해준다.
<앱의 url.py>
1> Urlpatterns = [
#여기안에 추가해준다.
Path('경로이름', views.안에 함수 이름, name = '여기에 입력하면 이름으로 지정도 가능하다.'
]
<장고 버전에 따른 차이>
From django.conf.urls import url #장고 1버전
From django.urls import path, re_path #장고 2버전
- 여기서 url과 re_path는 같은 의미이다.
- 정규 표현식을 사용할 때 : ^는 시작을 의미, $는 끝을 의미한다.