1주차 - Django의 구조와 명령어
Django의 MVT(Model Template View)패턴
M(model)
- 데이터베이스의 모델로 저장도고 사용되는 데이터 형태
T(template)
- 사용자에게 보여지는 부분
V(View)
- 실질적으로 프로그램이 동작하는 부분 url요청 - 응답 사이에 일어나는 서비스들이 존재하는 곳
장고 프로젝트의 구조
외부 <프로젝트명> - 프로젝트의 컨테이너
내부 <프로젝트명> - 추가되는 모듈과 기능들을 관리(실제 파이썬 패키지)
__init__.py - 현재 폴더가 파이썬 패키지임을 나타내주는 파일
asgi.py - 웹 서버와 Django, 어플리케이션을 비동기로 연결해 주는 Python의 표준 인터페이스
settings.py - 장고 전체의 setting을 설정, 관리하는 곳(중요)
urls.py - 장고의 url(API주소)를 관리하는 곳(중요)
wsgi.py - WSGI 호환 웹 서버가 프로젝트를 제공하기 위한 진입 파일
templates폴더 - 작성한 HTML파일이 들어가는 곳
venv폴더 - 프로젝트의 패키지들을 관리하는 '가상환경'
manage.py - 장고의 서버를 다루게 해주는 python파일
settings.py
INSTALLED_APPS - 장고에 설치 된 앱들
MIDDLEWARE - 사용자 요청/응답 사이에서 작동하는 시스템들
TEMPLATES - 나의 html파일을 자동으로 인식
DATABASES - 내가 사용할 데이터베이스 연동 설정
AUTH_PASSWORD_VALIDATORS - 패스워드 보안 수준 검증
LANGUAGE_CODE - 화면에 어떤 언어를 보여줄것인지
TIME_ZONE - 우리가 어떤 시간에 있는지
urls.py
from django.contrib import admin # admin 모듈 import
from django.urls import path # path 함수 import
urlpatterns = [ # url 패턴들을 저장할 리스트 생성
path('admin/', admin.site.urls), # path함수로 url패턴 정의 admin/경로로 접근시,
# admin.site.urls로 연결함. 이를 리스트에 추가
]
프로젝트 구조 만들기
SNS를 만든다고 하면
1. 사용자 관리
2. 글쓰기
3. 친구만들기
의 기능들을 생각해볼 수 있고, 이는 다시 사용자와 글로 나눌 수 있을 것 같다
# Terminal에서 입력
django-admin startproject <프로젝트 이름>
django-admin startapp <앱 이름>
django-admin startproject <프로젝트 이름>
django-admin startapp <앱 이름>
둘이 헷갈리지 않도록 하자
↓ 각각 생성되는 파일이 크게 다르다
더보기
project의 경우
__init__.py
asgi.py
settings.py
urls.py
views.py
wsgi.py
----------------------
app의 경우
migrations
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
로 구성되어 있다.
앱 추가하기
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tweet', # tweet 앱 추가
'user', # user 앱 추가
]
VSCode에서 Django Template 폴더 경로 설정하는 방법
# settings.py
TEMPLATES = [
{
...
'DIRS': [BASE_DIR / 'templates'],
...
},
]
'Python > Django' 카테고리의 다른 글
Django - 회원가입 기능과 CSRF 토큰 (0) | 2023.04.04 |
---|---|
Django - 템플릿 상속과 URL연결, path() 함수 (0) | 2023.04.04 |
Django - Models 만들기 (0) | 2023.04.04 |
Django - Admin기능 (0) | 2023.04.04 |
Django - DB연결과 ORM(Object Relational Mapping) (0) | 2023.04.04 |
댓글