1. 프로젝트 생성 및 DB 생성
파이참 에디터로 장고 프로젝트를 시작해 보도록 하겠습니다.
New Project를 선택 후 프로젝트를 생성합니다.
새로운 가상 환경 위에 프로젝트를 구성합니다.
Click을 누르면 프로젝트를 구성합니다.
구성된 초기 파일들은 다음과 같습니다.
Alt + F12를 누르면 아래에 다음과 같은 터미널 창이 나타납니다.
저는 윈도우 기준이므로 pip install django 명령어를 통해 설치하도록 하겠습니다.
저는 이미 설치가 되어 있습니다.
다음은 장고 프로젝트를 생성하겠습니다.
명령어는 django-admin startproject myproject .입니다.
저는 프로젝트 이름을 myproject로 하겠습니다.
django-admin startproject 후 python manage.py migrate를 통해 DB까지 생성해 주었습니다.
django-admin startproject myproject . 를 실행하면 myproject라는 프로젝트 폴더가 생성됩니다.
그리고 python manage.py migrate를 실행하면 db.sqlite3파일이 생성됩니다.
myproject에는 프로젝트 설정과 웹 실행에 필요한 파일들이 생성됩니다.
__init__.py는 파이썬 2.x 버전과의 호환을,
settings.py는 프로젝트 설정과 관련된 내용을,
urls.py는 최초로 탐색되는 기준 url 파일입니다.
wsgi.py는 Web Server Gateway Interface로 파이썬이 웹서버와 통신하기 위한 파일입니다.
settings.py 파일은 몇 가지 중요한 설정들이 있습니다.
BASE_DIR은 프로젝트 루트 폴더이며, DEBUG는 디버그 모드를 설정합니다.
True일 경우 오류 메시지들을 바로 확인할 수 있으나 실제로 배포 시에는 False로 바꾸어주어야 합니다.
ALLOWED_HOSTS는 호스트를 설정하는 파일로 배포시에는 실제 도메인을 기록합니다.
대규모 프로젝트는 프로젝트 안에 여러 개의 기능을 담당하는 어플리케이션으로 구성될 수 있습니다.
INSTALLED_APPS는 프로젝트에 필요한 앱들을 추가합니다.
2. 앱 생성 후 프로젝트에 추가하기
그럼 이제 앱을 생성 후 실제로 프로젝트에 추가해보겠습니다.
python manage.py startapp myapp
위 명령어를 통해 myapp이라는 새로운 앱을 생성합니다.
그럼 myapp이라는 폴더 안에 migrations 폴더와,
__init__py, admin.py, apps.py, models.py, test.py, views.py 등의 파일이 생성됩니다.
여기서 생성한 myapp을 원래 myproject에 연결시켜주겠습니다.
myproject의 settings.py의 INSTALLED_APPS에 myapp을 추가해줍니다.
그리고 서버 실행 후 접속했을 때 '하비코딩페이지'가 표시되도록 view를 작성해보겠습니다.
views.py를 작성합니다.
그리고 myproject의 urls.py에 views.py의 경로를 추가해줍니다.
from django.conf.urls import url
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
url('', views.index),
]
그리고 서버를 실행하면 빈 화면에 '하비코딩 페이지'만 출력이 됩니다.
3. 앱 안의 설정 파일들의 역할
models.py는 모델(Model)의 DB 구조를 결정합니다.
쉽게 말해 데이터 모델을 만들어주는 역할을 하는 파일입니다.
ORM(object-oriented-mapping)이라는 것을 통해
웹 프로그래머가 SQL을 모르더라도 DB를 사용할 수 있도록 만들어줍니다.
ORM은 Django에서는 python을, DB에서는 sql을 사용하는 중간에서 매개체 역할을 합니다.
구체적으로는 python으로 작성된 class 기반의 모델을 DB에 저장할 수 있도록 바꾸어줍니다.
모델을 정의할 때는 모델명 = 클래스명 = 테이블 이름이 되고, 클래스의 속성들이 컬럼(Column)이 됩니다.
admin.py는 관리자 페이지와 관련이 있습니다.
관리자 페이지는 DB 테이블을 웹 페이지 상에서 손 쉽게 관리할 수 있도록 도와주는 페이지입니다.
프로젝트 폴더 경로에서 python manage.py createsuperuser 명령어로 관리자 계정을 생성해서 사용합니다.
해당 관리자 페이지에 대한 기능들이 admin.py에 저장되어 있습니다.
views.py는 CRUD에서 필요한 글쓰기, 글확인, 글수정, 글삭제 등의 페이지들을 작성합니다.
보통 뷰(View)를 만든다고 표현합니다.
View를 만든 뒤에는 urls.py에 해당 View 경로를 추가해 주어야 합니다.
urls.py에는 url을 통한 호출과 관련된 내용이 적혀 있습니다.
예를 들어 어떤 url을 이용해 어떤 view를 동작시킬까에 대한 내용을 urls.py에 기록합니다.
urls.py는 생성한 프로젝트 urls.py와 기능을 위해 생성한 앱의 urls.py가 있습니다.
templates 폴더는 나중에 만들어줘야 합니다.
보통 html 파일이 들어 있지만 html파일 안에 템플릿 코드들도 들어 있습니다.
이상으로 파이참에서 장고 프로젝트를 생성하고 생성된 파일들의 역할에 대해 살펴보았습니다. 🎉
참고자료
velog.io/@amuse/django-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AA%A8%EB%8D%B8-models.py
opentutorials.org/module/4034/24661
'Web > Django' 카테고리의 다른 글
파이썬 가상환경 설정하기 (2) | 2021.05.28 |
---|---|
Django Mysql 연동하기 (0) | 2021.05.27 |