Posts [프로그래머스 인공지능스쿨] Week4-3 Django (1)
Post
Cancel

[프로그래머스 인공지능스쿨] Week4-3 Django (1)

강의


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

Assignment


This post is licensed under CC BY 4.0 by the author.