강의
Django
Python 기반 웹 프레임워크
Flask에 비해 프로젝트의 크기가 크다.
설치는 cmd에서 pip install django
명령을 통해 설치한다.
프로젝트를 시작하기 위해서는 django-admin startproject pro_name
명령을 통해 새로운 프로젝트를 생성한다.
생성된 프로젝트에서 서버를 실행하는 방법은 python manage.py runserver
명령어를 통해서 실행하며,
127.0.0.1:8000/admin 에 접속하여 확인할 수 있다.
admin 생성하기
python manage.py migrate
python manage.py createsuperuser
명령을 진행한다.
admin 계정을 생성하고,
초기 생성 파일 알아보기
프로젝트를 생성하면 기본으로 생성되는 파일들이 많다.
- __init__.py
해당 디렉토리가 파이썬 모듈로 인식되도록 한다.
- settings.py
해당 프로젝트의 전반적인 설정사항들을 다룬다.
- urls.py
해당 프로젝트의 url들을 관리한다.
Projec와 App
django는 하나의 프로젝트안에서 여러개의 App을 관리하는 형식으로 이루어져 있다.
해당 프로젝트에서 django-admin startapp app_name
명령을 통해 app_name의 새로운 app을 생성할 수 있다.
해당 앱을 프로젝트에 담기 위해서는 몇 가지 설정을 해주어야한다.
여기서는 homepage라는 app을 만들고, 해당 앱에 index라는 view를 추가했다.
settings.py 에서 INSTALLED_APPS 추가하기
1
2
3
INSTALLED_APPS = [
'homepage',
]
urls.py 에서 해당 앱 추가
1
2
3
4
5
6
from homepage.views import index
urlpatterns = [
path('', index) # 127.0.0.1/
path('admin/', admin.site.urls),
]
- apps.py
해당 app에 대한 설정을 관리한다.
- models.py
해당 app안에서 사용되는 데이터베이스 스키마 등을 클래스형식으로 생성할 수 있다.
- views.py
해당 앱에서 view를 어떻게 관리할지 설정할 수 있다.
App에 template 생성하기
해당 앱 디렉토리에 template 하위 디렉토리를 생성한다.
template 내에 html 파일을 생성한다.
views.py에서 해당 html 파일을 render를 통해 리턴하도록 한다.
1
2
def index(request):
return render(reqeust, 'index.html',{})
추가적으로 해당 html 파일의 위치를 알려주기 위해 settings.py에서 TEMPLATES에 DIRS를 추가해준다.
1
2
3
4
5
6
7
8
TEMPLATES = [
{
'DIRS': [
os.paht.join(BASE_DIR, "homepage", "template"),
],
},
]
template 언어 사용하기
render를 통해 변수를 html에 전달할 수 있다.
1
2
number = 10
render(reqeust, 'index.html',{"my_num":number})
이런 방식으로 사용하면 html 내에서 my_num에 10이 담기게 된다.
html에서는 해당 변수를 사용할 때, 기호를 사용한다.
해당 변수에 필터를 적용할 수 있다.
filter는 length, upper 등 다양한 종류가 존재한다.
1
<p></p>
또한 for, if 문 등을 html에서 사용할 수 있다.
해당 tag은 {\% tag \%} … {\% endtag \%} 구조로 사용한다.
1