본문 바로가기
Lecture/Python

[Django] 본격 Django 시작하기 - 환경설정, 게시판(관리자기능)

by cusmaker 2017. 12. 15.
반응형

안녕하세요 cocy입니다.

요즘 핫한 파이썬 장고를 학습하면서 정리할겸 오랜만에 포스팅을 해보려합니다.

이 포스팅은 기본적으로 메인 개발 언어를 가지고 있고,

소스관리 툴(GIT)을 사용해 본 적이 있으며,

어느정도 DB를 다룰 수 있고,

MVC 패턴에 익숙하다면 이해할 수 있을 정도로 작성될 예정입니다.(제기준)


개발 환경은 아래와 같습니다.

Python3

Django2

IDE : Intellij

OS : Mac


포스팅에 참고한 레퍼런스는 아래 URL입니다.

https://tutorial.djangogirls.org/ko/


기본적인 환경 셋팅은 레퍼런스 주소에 잘 나와있기때문에

Mac 환경에 설치하는 방법 위주로 적겠습니다.(제위주)


프로젝트를 생성할 폴더를 만들고 모든 작업은 그 폴더 안을 기준으로 합니다.

폴더 이름은 board로 하겠습니다.


 파이썬을 설치하고 아래의 명령어를 실행합니다.

$ virtualenv --python=python3.6 myvenv

가상환경을 만드는 명령어입니다.

이후 가상환경을 활성화 합니다.

$ source myvenv/bin/activate

그리고 장고를 설치해줍니다.

(myvenv) $  pip install django

board폴더 안에서 프로젝트의 뼈대가되는 mysite를 생성해줍니다.

(myvenv) $ django-admin startproject mysite .

mysite는 프로젝트의 뼈대가 되는 파일들이 생성됩니다. (manage.py)

그다음으로 생성된 프로젝트 폴더 안에서 아래 명령어를 실행합니다.

python manage.py migrate

디비를 연결해주는 작업입니다.

이후 프로젝트를 서버로 구동 해봅니다.

(myvenv) $ python manage.py runserver

서버를 구동하고 페이지가 정상적으로 열리는것을 확인했으면 
게시판 모델을 만들어 적용해봅니다.
여기서 모델은 MVC에서 M에 해당하고
DDD에서 도메인에 해당합니다.

이 모델을 기준으로 app이라 명명하고 데이터를 관리하게 됩니다.
(myvenv) $ python manage.py startapp notice
notice라는 이름으로 app을 생성하였습니다.

이후 설정파일에 해당 모델을 추가해줍니다.

mysite/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'notice',
]
그럼 실제로 모델에 들어갈 항목들을 코딩해줍니다.
notice/models.py

from django.db import models
from django.utils import timezone


class Article(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE,)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)

def publish(self):
self.published_date = timezone.now()
self.save()

def __str__(self):
return self.title


그럼 생성된 모델을 데이터베이스에 쓰기위해 다음 명령어를 실행합니다.
(myvenv) $ python manage.py makemigrations notice
(myvenv) $ python manage.py migrate notice
다음으로 관리자 화면을 자동으로 생성하기 위해 아래 파일을 수정해줍니다.
*관리자 화면을 한국어로 변경하길 원할 경우 'settings.py'중 LANGUAGE_CODE = 'en-us'를 LANGUAGE_CODE = 'ko'로 바꾸세요.

 notice/admin.py
from django.contrib import admin
from .models import Article

admin.site.register(Article)
자동으로 생성된 관리자권한은 계정 인증을 요구하기때문에 아래 명령어를 사용하여 

관리자 페이지에 로그인할 슈퍼유저를 생성합니다.
(mvenv) $ python manage.py createsuperuser


마지막으로 서버를 재구동하여 확인해봅니다. 관리자 화면은 /admin 입니다.

http://127.0.0.1:8000/admin



수고하셨습니다.


본 포스팅에서 사용된 명령어를 정리하면 다음과 같습니다.

Python(Django) 명령어


https://docs.djangoproject.com/en/2.0/ref/django-admin/



======================== 항시 사용===========================


가상환경사용

source /User/cocy/myvenv/bin/activate


서버 구동

python manage.py runserver



========================프로젝트 생성시만 사용=================


<projectname> django-admin startproject mysite .


python manage.py migrate


=========================모델 생성시 사용=====================


앱 생성

python manage.py startapp <appname>



앱에서 생성된 모델 반영

python manage.py makemigrations <appname>

python manage.py migrate <appname>


'Lecture > Python' 카테고리의 다른 글

[django] 본격 장고 웹소켓  (0) 2018.01.25