장고 프로젝트 Django Simple Web Project -3 (어플리케이션 만들기)
이전 포스팅입니다 :)
[Python/Django] - 장고 프로젝트 Django Simple Web Project - 1 (장고 설치하기)
장고 프로젝트 Django Simple Web Project - 1 (장고 설치하기)
안녕하세요, Django를 가지고 웹페이지를 만들어 보겠습니다. 주로 Cmd 창 혹은 Terminal 에서 실행 하려고 합니다. 저는 Linux 터미널이 Window10 명령 프롬프트보다 편해서, 개발자모드로 변경 후에 Linux bash..
woolbro.tistory.com
[Python/Django] - 장고 프로젝트 Django Simple Web Project -2 (장고 사용하기)
장고 프로젝트 Django Simple Web Project -2 (장고 사용하기)
[Python/Django] - 장고 프로젝트 Django Simple Web Project - 1 (장고 설치하기) 장고 프로젝트 Django Simple Web Project - 1 (장고 설치하기) 안녕하세요, Django를 가지고 웹페이지를 만들어 보겠습니다. 주..
woolbro.tistory.com
이번 포스팅에는 어플리케이션을 추가해서 만들어 보도록 하겠습니다.
boardApp 어플리케이션 추가
manage.py를 사용하여 어플리케이션을 추가하겠습니다. 게시판을 만들려고 하기 때문에 이름을 boardApp으로 하겠습니다.
$ python3 manage.py startapp boardApp
그럼, boardApp이 하나 생기는데요, 현제 제 디렉토리 기준으로는 myvenv 하위폴더로 boardApp이 생성되었습니다.
현재 boardApp이라는 어플리케이션을 생성했는데, 생성 한 사실을 장고 settings.py에 알려주어야 합니다.
아래의 settings.py는 mysite/settings.py입니다.
boardApp 모델 생성하기
Model 객체를 생성하겠습니다. 생성한 boardApp의 하위에 있는 models.py 파일에 선언하여 모델을 만듭니다.
boardApp/models.py 파일을 작성하겠습니다.
django.db 에서 models, django.utils 에서 timezone 을 불러옵니다. 모델 안에서 사용 할 것들입니다.
Post라는 이름의 모델을 만들고, models.Model은 이 Post를 장고의 모델임을 알려줍니다.
ForeignKey, CharField, TextField 등의 속성들이 있는데 하나씩 설명 하겠습니다. 아시는 분들은 쭉~ 내려주세요
- models.CharField : 텍스트를 정의 할 때 사용 (글자수의 제한이 있는 비교적 짧은 글)
- models.TextField : 텍스트를 정의 할 때 사용 (글자수의 제한이 없는 긴 텍스트)
- models.DateTimeField : 날짜, 시간이 담긴 필드
- models.ForeignKey : 다른 모델과의 링크를 잡아줍니다. 외래키입니다.
모델 속성에 관한 reference 는 링크에 자세히 소개가 되어있습니다. 시간이 날 때 한번 읽어보시면 유용 할 것 같습니다.
Model field reference | Django 문서 | Django
Django The web framework for perfectionists with deadlines.
docs.djangoproject.com
DB에 모델 테이블 생성하기
작성한 모델을 가지고, DB테이블을 생성하겠습니다. 마찬가지로 manage.py 파일을 사용하겠습니다.
$ python3 manage.py makemigrations boardApp
위의 명령어를 실행하면 아래와 같이 출력이 됩니다.
Migrations for 'boardApp':
boardApp/migrations/0001_initial.py
- Create model Post
모델 Post를 생성했으니, 이제 실제 데이터베이스에 모델을 추가 해 주겠습니다.
$python3 manage.py migrate boardApp
Operations to perform:
Apply all migrations: boardApp
Running migrations:
Applying boardApp.0001_initial... OK
위와 같은 글이 출력되면 모델을 추가가 된 것입니다.