Web 공부/Django

Django 구조 이해하기

sumiin 2022. 3. 23. 14:34
반응형
SMALL
pyenv local {가상환경 이름}

특정 디렉토리에 로컬 가상환경 적용

 

django-admin startproject {프로젝트 이름}

django 프로젝트 생성

 

python manage.py runserver

 

만든 사이트 실행시킬 수 있음

 http://127.0.0.1:8000/ 링크 들어가면 사이트 실행 가능 !!

 

 

django 프로젝트 구조

Project Root

  • django 프로젝트의 모든 파일이 담겨있는 최상위 디렉토리 (바깥 Costaurant)

Project App

  • 우리 Project의 가장 중심이 되는 App( 안쪽 Costaurant)

manage.py 

  • Django 프로젝트 관리를 위한 명령어 지원
  • 앱 생성, 데이터베이스 관련 명령, 개발서버 실행 등

db.sqlite3

  • 우리 프로젝트에서 사용하는 데이터베이스 파일

__init__.py

  • 디렉토리를 하나의 패키지로 인식되게 하는 파일
  • python 3.3버전 이상부터는 이 파일 없어도 python 패키지로 인식되지만 하위버전호환을 위해 적어주는게 좋음

settings.py

  • 시간대 설정, 데이터베이스 설정, 여러 경로 설정 등
  • Django 프로젝트의 전반적인 설정 담당

urls.py

  • URL을 보고 알맞은 페이지로 연결해 주는 역할

wsgi.py

  • WebServer Gateway Interface
  • 웹서버와 python 어플리케이션인 Django사 소통하는데 필요한 일정의 프로토콜

 

Django 앱(app)

 

python manage.py startapp {앱 이름}

django 앱 생성하기

 

 

새로운 앱을 만들었다면 장고에게 새로운 앱을 만들었다는 사실을 알려줘야 함!!

settings.py의 INSTALLED_APPS 부분에 앱 이름 추가

 

 

Hello,Django!

 

urls.py

경로를 지정하는 부분

 

path('foods/',include('foods.urls'))

도 추가해줘야함

 

그 다음 foods 디렉토리에 urls.py 파일을 생성해야한다.

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('index/',views.index)
  
]

views.py에 index라는 모듈을 참고하라고 했는데 index라는 모듈이 없으니 직접 만들어줘야한다. 

 

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("<h2>Hello Django!</h2>")

 

 

server 구동후, foods/index 경로로 들어가면 웹 페이지 나옴 !

 

Django 템플릿과 렌더링

만약 Hello Django!부분에 더 여러 줄을 쓰고싶다면 HTML파일의 template을 따로 작성해줌!

 

Template을 user에게 보여준다 -> Template을 Render한다.

 

 

foods 디렉토리 안에 templates 디렉토리를 생성하고 그 안에 foods 디렉토리 생성 후, index.html에 작성해줌

 

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return render(request,'foods/index.html')

views.py 의 index 모듈 안에는  foods/index.html을 연결시켜줌

Rendering을 통해 HttpResponse 객체로 변환시켜줌

다시 서버 구동하면 실행 확인 가능!!

 

 

django의 MVT 구조

Model

  • 데이터 구조 생성 
  • 데이터베이스와 소통

View

  • 웹 사이트의 로직을 담당
  • Model과 Template사이를 연결 (요청을 처리하는 역할)

Template

  • 웹 사이트의 화면 구성 담당
  • 매번 바뀌는 동적인 화면을 구성

 

반응형
LIST

'Web 공부 > Django' 카테고리의 다른 글

Django CRUD  (0) 2022.03.25
Django admin 페이지에서 줄바꿈 문제 해결 breaksbr  (0) 2022.03.25
Django 빠르게 배포하기  (0) 2022.03.25
Model  (0) 2022.03.24
Template과 View  (0) 2022.03.24