본문 바로가기

Python Web Framework/Django, Flask

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)을 등록.

settings.py의 INSTALL_APP에 등록

 

2> views.py에 index 함수와 test용으로 함수를 추가한다.

views.py

 

3> blog안에 urls.py를 새로 만들어서 안에 경로를 설정해준다. 

 - 경로 설정방법 urls.py을 생성하고 urlpatterns = [ path( '경로', views.함수이름 ) ]를 추가한다.

urls.py

 

4> myproject/urls에 앱주소 추가 : blog가 있는 주소를 myproject가 알기 위해서 연결해준다.

myproject/urls.py에 새로운 앱의 url 추가해준다.

 

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는 같은 의미이다.

- 정규 표현식을 사용할 때 : ^는 시작을 의미, $는 끝을 의미한다.

 

반응형

'Python Web Framework > Django, Flask' 카테고리의 다른 글

[Django] Trouble Shooting  (0) 2020.01.24
[Nginx + Gunicorn + Django] API 서버 구축  (0) 2020.01.20
Django_Admin  (0) 2019.04.08
Django_Model  (0) 2019.04.07
Django_NewApp_FullProcess  (0) 2019.04.07