Django #01 프로젝트 생성 및 실행

만두다섯개·2023년 11월 4일

Django 기초 학습

목록 보기
1/3

들어가기 앞서

  • 주관적인 해석, 잘못된 내용, 잘못된 호칭의 사용이 있을 수 있습니다.
  • 해당 학습 환경은 아래와 같습니다.
    개발 툴 : PyCharm 2023.2.3
    사용 DB : DBeaver 23.2.3, DB Browser
    웹 브라우저 : 크롬, 엣지

초기 설정

프로젝트 생성

  • (파이참 기준) 좌측 상단 – 파일 – 새 프로젝트 생성 - Django - [위치]지정 – 추가설정 [애플리케이션 이름)설정
  • 프로젝트 및 애플리케이션 생성 시, 프로젝트이름의 파이썬패키지, 애플리케이션이름의 파이썬패키지 생성.
  • manage.py - (venu 터미널) python manage.py runserver – 터미널 출력창 주소 클릭(웹브라우저) -장고 페이지 출력

WSGI 와 ASGI

  • WSGI, ASGI는 파이썬에서 CGI를 구현한 것.
  • 웹 서버와 앱 코드 사이의 미들웨어(코드읽기, 결과 반환)
WSGI이란?
  • webserver gateway interface : 파이썬에서 웹-백엔드 구성시 앱 연결 방법(한 프로세스에서 모든 요청 수신)
  • Django와 통신시 ‘프로젝트이름/config/wsgi.py’ 해당 파일 사용
  • 동기 함수처리, 여러 작업 처리의 한계
ASGI이란?

-common gateway interface 약자로, 요청의 비동기 처리를 지원한다.

  • CGI이란? 정적 HTML 파일로 웹 서비스시 사용하는 요소(요청마다 프로세서 fork())

wsgi.py 실행 시 오류 발생 해결방법

  • 디폴트인코딩, 파일인코딩(전역,프로젝트 인코딩) 두 가지 설정 필요
  • (파이참 기준) 좌측 상단 – 설정 - 에디터 – 일반 - 콘솔 – 디폴트 인코딩 [UTF-8] 설정
  • 설정 – 에디터 – 코드스타일 – 파일 인코딩 – 전역,프로젝트 인코딩 [UTF-8] 설정

Django 프로젝트 생성

Django 탬플릿 생성

Django 탬플릿 생성 방법

  1. Django 프로젝트 생성 시 추가 방법
  • Django 프로젝트 생성 시 추가 방법 - 추가설정 – [애플리케이션 이름]에 생성할 탬플릿 이름 작성
  1. 기존 탬플릿 복사해 추가 방법
  • 우측 상단 프로젝트 이름 클릭 – 구성편집 – 기존 탬플릿 클릭 – 좌측 상단의 복사 아이콘 클릭 – 기존 탬플릿이름(1)로 새로 탬플릿 생성
  • 브라우저 바로 실행 체크 시 바로 실행
  • 호스트와 포트를 지정가능 설정시 아래와 같은 명령어 입력 필요
    (venv) 터미널 : python manage.py runserver 0.0.0.0:5000 # 외부 PC
    (venv) 터미널 : python manage.py runserver [내부IPv4주소]:5000 # 내부 PC IP주소 및 포트로 접속 설정
  • 접근 가능한 목록 설정 : settings.py - ALLOWED_HOSTS = ['*'] # * 지정 시 모든 IP접근가능
    (참고 : 윈도우 CMD 명령어 ipconfig 출력인 ipv4 주소는 외부에서 보이지 않는 사설 아이피)
    (참고2 : 처음으로 장고 웹프레임 실행 시, db.sqlite3 라는 DB가 장고 프로젝트 파일의 venv 파일에 생성된다.)
  1. Django 프로젝트 생성 후 추가 방법
  • (파이참기준) venv 터미널에서 python manage.py startapp [애플리케이션이름]
  • django-admin startapp aap2 (실행)

Django 프로젝트 내부의 애플리케이션 접속하기

  • 먼저 프로젝트이름의 파이썬패키지, 애플리케이션이름의 파이썬패키지의 관계를 알아야 한다.
  • DjangoProject2 이름의 Django 프로젝트 파일 내부에는 파이썬 파일들이 존재한다.
  • 해당 프로젝트 경로 내부 중 urls.py가 존재(없으면 생성)한다.
  • urls.py 파일내부 urlpatterns에서 애플리케이션의 URL을 관리한다. (애플리케이션의 함수 경로도 지정가능)
  • 만약 [secure]이름의 애플리케이션 파이썬패키지를 생성한다면, 해당 urlpatterns 에 명시해주어야 접속 가능하다.

  • [app1.urls]이 빨간줄로 그어져 있다. 이는 [app1]이름의 어플리케이션 파이썬 패키지 내부에 urls.py 생성이 필요함을 의미하다. 생성해주자.
  • [app1] 이름의 애플리케이션 파이썬패키지 내부에도 urls.py 가 생성되었다.
  • 애플리케이션 파이썬패키지 urls.py 내부에도 urlpatterns 존재한다. Django 파이썬패키지 urls.py 내부 urlpatterns 에도 애플리케이션의 함수를 명시할 수 는있지만, 너무 많아지지 않겠는가?
  • 웹 브라우저에 [127.0.0.1:8000/app1]을 입력하면 애플리케이션 페이지 화면이 나올까?
  • 아니다! 아무것도 나오지 않는다. 해당 페이지에 출력할 내용이 없기 때문이다.
  • 아래 그림처럼 urlpattern을 명시해주면 경로만 지정이 되는 것이다.

  • 애플리케이션 파이썬패키지 내부의 view.py (없으면생성)에서 request 인자로 사용하는 함수를 생성해준다.

  • 해당 함수 사용은, requests(웹 페이지 URL에서 [127.0.0.1:8000/app1]를 사용한것)를 인자로 HttpResponse 함수를 리턴한다.
  • 해당 함수를 사용하기 위해서는, 애플리케이션 파이썬패키지 urls.py – urlpatterns를 지정해주어야 한다.
    (import 모듈도 확인해보자. path, views 사용목적)

-아래 그림과 같이 경로가 생성되어 웹 페이지에서 함수가 호출되어 보인다

profile
磨斧爲針

0개의 댓글