Web
Django 기본 셋팅
서영환
2024. 8. 19. 08:27
1. 패키지 설치 및 환경 설정
- python -m venv .venv
- pip install django==4.2
- pip install pillow
- 기본적으로 사이트내에서 유저에게 파일을 전송 받지 않는 다면 마지막 pillow를 받지 않아도 무관하다
2. 프로젝트 생성 및 초기 셋팅
- django-admin startproject ProjectName .
- 프로젝트 이름 후 경로 설정을 따로 하지 않으면 해당 위치에서 프로젝트폴더를 생성하고 해당 폴더 안쪽으로 프로젝트가 셋팅된다. 그렇게 될경우 해당 위치로 이동이 필요하기에 가능하면 경로 위치에 . 을 입력하에 현위치에 생성하게 하는게 편하다
- python manage.py startapp AppName
- ProjectName/settings.py 수정
- 앱을 생성 할 경우 아래 코드 처럼 INSTALLED_APPS에 등록을 해주어야지만 장고가 해당 앱의 내용을 인식할 수 있다
- 그리고 우리가 만든 html 파일을 장고에게 인식 시키기 위해 TEMPLATES에 DIRS 경로를 잡아 주어야 한다
- 회원기능이 필요할 경우 장고에서 제공하는 기본적인 회원이 아닌 우리가 만든 부분으로 변경하기 위해서는 AUTH_USER_MODEL 부분을 등록하면 우리가 만든 부분으로 기본적으로 잡아 준다.(그러니 초기 셋팅때 기본적인 앱을 생성하고 해당 앱 중 회원쪽 앱에 회원 테이블을 선언해 놓자)
- static의 경우에는 주로 css, js 파일을 같은 정적인 파일을 관리하기 위해 경로 지정하며 아직은 배우지 않은 배포시의 경로까지 잡아주면 된다.(이부분은 추후 배우게 되면 추가로 설명을 하겠다)
- static 경로에 있는 파일들을 불러오기위해서는 html 상단에 {% load static %}을 선언하고 이후 불러올 위치에 {% stacic '파일경로/파일이름' %}으로 불러오면 된다
- 다음 MEDIA의 경우는 사용자에게 파일을 받아 저장하기 위하여 경로를 설정한다
INSTALLED_APPS = [
....
"AppName",
]
TEMPLATES = [
....
"DIRS": [BASE_DIR / "templates"],
....
]
# 추가 생성
AUTH_USER_MODEL = 'AppName.User'
STATICFILES_DIRS = [BASE_DIR / "static"]
STATIC_ROOT = BASE_DIR / "staticfiles"
#Media files
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR / "media"
3. namespace 설정
- 프로젝트를 진행하다보면 동일한 이름을 지정하는 경우가 많은데 이때 중복된 이름으로 호출 할 경우 settings에 INSTALLED_APPS의 순서대로 찾아 오기에 먼저 선언된 이름으로 불러온다
- 이러한 현상을 방지하기위하여 앱 안에 있는 urls.py 에 app_name='AppName'을 설정한다
- 프로젝트 중간에 설정 할 경우 해당 주소를 호출 하는 모든 곳을 수정해야 하니 처음에 설정을 잘해 놓자..
- 그리고 각각의 app 안에 있는 urls.py를 메인 urls.py에 인식 시키위해서는 include를 이요하면 된다
urlpatterns = [
.....
path("accounts/", include("accounts.urls")),
.....
]