훌이
후리스콜링개발
훌이

블로그 메뉴

  • 왈 (iOS APP)
  • Github
전체 방문자
오늘
어제
  • 전체 (171)
    • ⭐️ 개발 (140)
      • JAVA (4)
      • Web (5)
      • iOS & Swift (94)
      • iOS Concurrency (4)
      • Rx (18)
      • Git (6)
      • WWDC (1)
      • Code Refactor (3)
      • Server (1)
    • ⭐️ Computer Science (22)
      • 운영체제 (10)
      • 네트워크 (5)
      • PS (7)
    • 경제시사상식 (8)
    • 기타 등등 (0)

인기 글

최근 글

06-02 02:11

티스토리

hELLO · Designed By 정상우.
훌이
⭐️ 개발/Web

[장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin

[장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin
⭐️ 개발/Web

[장고] 장고를 통해 Blog app 생성하는 과정(1) - Model&Admin

2020. 7. 6. 22:24
728x90
반응형

매번 반복해서 따라해봐도 익숙해지지 않는 멋사.. 장고 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로 받는다는 뜻

짠!

 

 

 

 

 

 

 

 

너무 길어지니 이어서 정리해보겠다!

 

728x90
반응형
저작자표시 변경금지 (새창열림)

'⭐️ 개발 > 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
  • 장고를 통해 blog app 생성하는 과정을 공부해보자.
'⭐️ 개발/Web' 카테고리의 다른 글
  • [장고] Blog app - 1:N 댓글 기능 구현하기
  • [장고] 장고를 통해 Blog app 생성하는 과정(3) - Detail page
  • [장고] 장고를 통해 Blog app 생성하는 과정(2) - View&Templates
  • [장고]Mac OS에 장고 설치하고 가상환경 설정하기
훌이
훌이

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.