Do It Django 블로그 만들기 1

1. Django 개발 환경 설정

01. Python, pip 설치 확인

  • python과 pip가 설치가 되어 있어야 한다
python --version
pip --version

02. 가상환경 구성

  • OS 환경이라면 source 가상환경\Scripts\activate
  • Scripts가 아니면 bin 폴더
  • list는 현재 설치된 패키지 확인 명령어
pip3 install virtualenv
virtualenv venv
.\venv\Scripts\activate
(venv) pip3 install django
(venv) pip list

03. 프로젝트 생성

  • 프로젝트 생성을 하면서 마지막에 '.'을 붙여주면 새폴더가 아닌 현재 폴더에 프로젝트가 생성된다
  • 생성 후 migrate을 해주어야한다, 왜냐면 프로젝트 생성 시 기본적인 테이블이 구성이 되기 때문이다
(venv) django-admin startproject do_it_django_prj .
(venv) python manage.py migrate

04. 관리자 계정 생성

python manage.py createsuperuser

05. 서버 실행

python manage.py runserver

2. 앱 개발하기

  • Django Project는 기본적으로 1개 이상의 앱으로 구성되어 있다
  • app
    • '특정한 기능을 수행하는 단위 모듈'

01. blog와 single_pages 앱 생성

python manage.py startapp blog
python manage.py startapp single_pages

02. 모델 만들기

  • Django의 장점 중 하나로 모델을 이용해 장고 웹 프레임워크 안에서 데이터베이스를 관리할 수 있다

-1. 블로그 글을 위한 모델 만들기

  • 1. Post 모델 만들기

    • blog/models.py
    from django.db import models
    
    # Create your models here.
    
    
    class Post(models.Model):
        title = models.CharField(max_length=30)
        content = models.TextField()
    
        created_at = models.DateTimeField()
  • 2. 데이터베이스에 Post 모델 반영

    • 바로 작용은 되지 않으며 앱을 만들면 필히 Root 디렉토리에 있는 settings.py 내부의 INSTALLED_APPS에 추가해주어야 한다
    python manage.py makemigrations


    python manage.py migrate

    • 모델을 만들었지만 바로 관리자 페이지에 적용되는 것은 아니다!
    • 관리자 페이지 적용은 app의 admin.py에서 설정

-2. 관리자 페이지에서 첫 포스트 작성하기

  • 1. admin.py에 Post 모델 추가

    • blog/admin.py
    • .models 모델 파일에 있는 Post 클래스 import 후 admin 사이트에 입력
    from django.contrib import admin
    from .models import Post
    
    # Register your models here.
    admin.site.register(Post)

  • 2. 새로운 포스트 생성



-3. 포스트 개선하기

  • 1. str() 함수로 포트스 제목과 번호 보여주기(models.py)

    • post 하나 더 생성
    • 제목과 내용 파악이 힘들기 때문에 제목과 내용을 파악할 수 있도록 models.pystr() 함수 추가하기!
    from django.db import models
    
    # Create your models here.
    
    class Post(models.Model):
        title = models.CharField(max_length=30)
        content = models.TextField()
    
        created_at = models.DateTimeField()
    
        def __str__(self) :
            return f'[]{self.pk}]{self.title}'


  • 2. 특정 지역 기준으로 작성 시각 설정

    • 만약에 현재 시각과 포스트 작성시의 시각과 맞지 않다면 settings.py의 시간 설정을 의심 해봐야 합니다!
    • root 디렉토리 / settings.py
    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True

    LANGUAGE_CODE = 'en-us'
    
    TIME_ZONE = 'Asia/Seoul'
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = False


  • 3. 자동으로 작성 시각과 수정 시각 저장

    • DateTimeField

      • auto_now : 저장이 될 때마다 저장 시각으로 저장
      • auto_now_add : 생설 될 때 딱 한번 시각 저장
      from django.db import models
      
      # Create your models here.
      
      
      class Post(models.Model):
          title = models.CharField(max_length=30)
          content = models.TextField()
      
          created_at = models.DateTimeField(auto_now_add=True)
          update_at = models.DateTimeField(auto_now=True)
      
          def __str__(self):
              return f'[{self.pk}]{self.title}'

      python manage.py makemigrations
      python manage.py migrate
      python manage.py runserver

좋은 웹페이지 즐겨찾기