Django 구성
1. 프로젝트 및 앱 생성
1
2
project 생성 :
django-admin startproject {project name} --> 큰 틀
1
2
app 생성 :
python3 manage.py startapp {app name} --> 작은 틀
1
tree {file name} 하면 이름에 있는 파일 또는 폴더를 tree 구조로 볼 수 있음.
2. 프로젝트 폴더에 있는 setting.py
1
2
setting.py - 프로젝트 환경 설정 파일
내가 추가해주거나 바꿔준 것만 씀.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True # DEBUG - 디버그 모드 설정
ALLOWED_HOSTS = ['*'] # ip주소가 들어가야 하지만 *로 모든 ip 허용
# Application definition
INSTALLED_APPS = [ # INSTALLED_APPS - pip로 설치한 앱 또는 본인이 만든 앱 추가
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
]
# '{app이름}.apps.{app이름(맨 앞이 대문자)}Config
# ex) blog 앱-> blog.apps.BlogConfig
DATABASES = { # DATABASES - db 엔진 연결 설정, default : sqlite3
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
LANGUAGE_CODE = 'ko-kr' # 바꿔주면 좋음
TIME_ZONE = 'Asia/Seoul' # 다른 걸로 되어있어서 고처야 함
3. manage.py 명령어
1
2
startapp - 앱 생성
ex) python3 manage.py startapp blog
1
2
runserver - 서버 실행
ex) python3 manage.py runserver 0.0.0.0:8000
1
createsuperuser - 관리자 생성
1
2
makemigrations {app name} - app의 모델 변경 사항 체크
-> models.py 변경 후 사용
1
2
migrate - 변경 사항을 DB에 반영
-> makemigrations 하고 사용
1
shell - 쉘을 통해 데이터를 확인 # 써보진 않음
1
collectstatic - static 파일을 한 곳에 모음 # 써보진 않음
4. 대략적인 흐름
1
1. 프로젝트 생성
1
2
3
2. 앱 생성 후 프로젝트 폴더에 있는 settings.py의 installed app에 작성하여 연결
-> {app이름}.apps.{app이름(맨 앞이 대문자)}Config
-> allowed_host 값을 '*'로 설정
1
3. templates 폴더 생성 -> 앱 이름과 동일한 폴더 생성 --> 화면에 보여질 html 파일 작성
1
2
3
4
4. views.py에 동작을 하는 함수 만들기
-> views.py에는 request가 들어왔을 때 3에서 만든 html을 불러주는 함수 작성
ex) def index(request) : return render(request, 'home.html')
1
2
3
4
5. url 설계 -> 해당 url로 접근 시, views.py에 있는 함수를 실행시킴
-> 즉, 그 함수가 html 파일을 화면에 보여주는 원리
--> 앱 폴더에서 urls.py를 작성 --> 그 내용을 프로젝트 폴더에 있는 urls.py에도 작성
참고
Link : ssungkang.tistory.com
Link : velog.io/@rosewwross/More-on-Django#2-url-resolution-urlspy
This post is licensed under CC BY 4.0 by the author.