매번 반복해서 따라해봐도 익숙해지지 않는 멋사.. 장고 MTV 세션.
기억에 남기기 위해 블로그에 상세하게 정리를 해보려고 한다.
장고를 통해 blog app 생성하는 과정을 공부해보자.
1. 가상환경 활성화
* 이전에 가상환경을 생성 후 장고를 설치했기 때문에 따로 설치는 안한다.
luh-ui-MacBook-Pro:Django practice ruheekim$ source newenv/bin/activate
2. 가상환경이 활성화된 곳에 장고 프로젝트 생성
*프로젝트 이름을 mysite로 생성하고, 후에 편의상 ch2라고 바꾸어 주었다.
(newenv) luh-ui-MacBook-Pro:Django practice ruheekim$ django-admin startproject mysite
3. ch2 프로젝트 안으로 이동해 blog 앱 생성
cd ch2 (ch2 파일로 이동)
pwd (현재 파일 경로 확인)
python manage.py startapp blog (blog 앱 생성)
(newenv) luh-ui-MacBook-Pro:Blog ruheekim$ cd ch2
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ pwd
/Users/ruheekim/Desktop/mutsa/Django practice/Blog/ch2
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ python manage.py startapp blog
위와 같은 코드를 입력해주고 난 후
비주얼 스튜디오 코드에 ch2 폴더를 켜주면
왼쪽 사진과 같이 ch2 안에 blog가 생성된 것을 볼 수 있다.
장고의 장점은 필요한 코드들이 다 작성되어 있는 프레임워크로 우리가 필요한 부분들만 덧붙이면 된다.
4. ch2/mysite/settings.py 수정 (총 4가지)
- 가동할 서버의 ip 주소 입력 Allowed Host 수정
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '192.168.56.101']
- 프로젝트에 추가된 Blog 앱을 Installed Apps에 'blog.apps.BlogConfig', 추가
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
]
- 데이터베이스 설정
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
- 타임존 설정
#TIME_ZONE = 'UTC'
TIME_ZONE = "Aisa/Seoul"
5. Models.py에 클래스 형식으로 데이터 정리
*Blog에 담을 내용은 제목, 작성일자, 본문
from django.db import models
# Create your models here.
class Blog(models.Model):
title=models.CharField(max_length=200)
#'title'이라는 변수에서는 모델 안에 있는 짧은 문자로 되어 있는 데이터를 처리하고
#최대 길이를 200으로 지정
pub_date=models.DateTimeField('date published')
#날짜와 시간을 나타내는 데이터를 처리
body=models.TextField()
#긴 문자로 된 데이터를 처리
*CharField() : 제목 같은 짧은 문자열
*TextField() : 내용 같은 더 긴 문자열
6. database에 지금까지 작성한 모델 업데이트하기
* python manage.py makemigrations : 데이터에 변경이 필요한 사항을 추출
* python manage.py migrate : 데이터베이스에 변경 사항을 반영
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ python manage.py makemigrations
Migrations for 'blog':
blog/migrations/0001_initial.py
- Create model Blog
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ python manage.py migrate
7. admin.py 에 Blog 클래스 추가
from django.contrib import admin
from .models import Blog
#같은 폴더 내에 있는 model 안에서 blog라는 객체를 가져와라
# Register your models here.
admin.site.register(Blog)
#admin site에 등록해라
8. 계정 생성 후 서버 돌려서 admin 페이지 확인하기
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ python manage.py createsuperuser
Username (leave blank to use '유저이름'): 유저이름
Email address: 이메일계정 작성
Password: 비밀번호 작성
Password (again): 재입력
Superuser created successfully.
(newenv) luh-ui-MacBook-Pro:ch2 ruheekim$ python manage.py runserver
* 주소창에 settings.py의 Allowed_host에 입력해둔 것들 중 하나로 검색하면 된다.(뒤에 /admin/을 입력할 것)
* 위 사진과 같이 로그인 페이지가 뜨면 된다.
blog에 게시물을 작성해주고 저장한다.
그러면 작성한 글이 왼쪽 사진과 같이
Blog object(1)으로 저장되어 있다.
이 경우에 글을 많이 쓰고, 관리할 때 무슨 내용인지 알기 힘들다.
그래서!!!
9. models.py에 __str__함수 추가
from django.db import models
# Create your models here.
class Blog(models.Model):
title=models.CharField(max_length=200)
pub_date=models.DateTimeField('date published')
body=models.TextField()
def __str__(self):
return self.title
* return 값을 title로 받는다는 뜻
짠!
너무 길어지니 이어서 정리해보겠다!
'⭐️ 개발 > Web' 카테고리의 다른 글
[장고] Blog app - 1:N 댓글 기능 구현하기 (0) | 2020.07.11 |
---|---|
[장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page (0) | 2020.07.07 |
[장고] 장고를 통해 Blog app 생성하는 과정(2) - View&Templates (0) | 2020.07.06 |
[장고]Mac OS에 장고 설치하고 가상환경 설정하기 (0) | 2020.07.05 |