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 앱 생성하기
새로운 앱을 만들었다면 장고에게 새로운 앱을 만들었다는 사실을 알려줘야 함!!
Hello,Django!
경로를 지정하는 부분
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
- 웹 사이트의 화면 구성 담당
- 매번 바뀌는 동적인 화면을 구성
'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 |