안녕하세요. 씨앤텍 시스템즈입니다.
이번 글은 Pyhton Django로 게시판 생성하는 방법에 대해서 정리해 보았습니다.
1. Django를 왜 가상 환경에서 실행해야 하는가?
2. 가상 환경, Django 설치
3. 게시판 글쓰기 구현
1. Django를 왜 독립된 가상 환경에서 실행해야 하는가?
Django(이하 장고)를 독립된 가상환경에서 실행해야 하는 이유는 파이썬이나 라이브러리의 버전을 분리하고 인터넷에서 다운로드 한 파이썬 라이브러리들이 충돌을 일으키는 것을 방지하기 위해서입니다.
2. 가상 환경, Django 설치
2-1. 가상환경 설치
기존에 장고 프로젝트를 실행했던 폴더의 상위 폴더에서 가상 환경을 설치합니다.
python -m venv 가상환경이름
저는 tech라는 이름으로 가상 환경을 설치했으므로 tech라는 폴더가 추가된것을 확인할 수 있습니다.
가상환경을 실행하기 위해서 가상 환경 폴더 아래 있는 Scripts폴더의 activate.bat를 실행해야 합니다.
가상환경폴더\Scripts\activate
가상 환경을 실행하게 되면 프로젝트 경로 앞에 (가상 환경 이름)이 추가된 것을 확인할 수 있습니다.
2-1-1. 가상 환경 실행 시 발생할 수 있는 오류
Windows10에서 가상 환경이 실행되지 않는 오류가 발생할 수 있습니다.
그 경우에는 [관리자 권한으로 실행]으로 다른 Powershell을 열어 다음의 명령을 입력합니다.
C:\Windows\system32> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Y를 눌러 제한을 해제하고 다시 가상 환경을 실행합니다.
2-2. Django 설치
가상 환경에 장고를 설치하기 전에, 이전에 설치했던 장고를 삭제합니다.
장고를 삭제하기 위해서는 실행되어있는 가상 환경을 종료합니다.
#가상환경 종료
deactivate
#django 삭제
pip uninstall django
장고 삭제가 완료되었다면 다시 가상환경을 실행한 후 장고를 설치합니다.
장고의 설치 장법은 지난 포스트에서 설명했기 때문에 간단히 하고 넘어가겠습니다.
장고 프로젝트를 만들어주고 게시판 실습을 위한 앱도 만들어줍니다.
pip install django
python -m pip install --upgrade pip
django-admin startproject <프로젝트 명>
cd <프로젝트 명>
python manage.py startapp blog
3. 게시판 구현
3-1. admin계정 생성
장고 프로젝트의 url.py를 살펴보면 admin페이지가 있는 것을 확인할 수 있습니다.
장고의 admin계정은 페이지에서 직접 회원가입을 하는 게 아닌 명령어로 생성해주어야 합니다.
python manage.py createsuperuser
admin 계정을 생성했다면 장고 서버를 실행하고, 계정이 제대로 생성되었는지 확인합니다.
로그인을 하면 다음과 같은 화면이 나오는 것을 확인할 수 있습니다.
3-2. 설정 변경
본격적으로 게시판을 구현하기에 앞서 기본 설정을 변경해보겠습니다.
프로젝트 폴더 안의 settings.py를 열고 이전 단계에서 생성한 blog 앱을 추가합니다.
언어, 시간을 변경해줍니다.
static 경로도 설정해줍니다.
3-3. model.py 설정
글을 작성하기 위한 model을 설정합니다.
from django.db import models
from django.utils import timezone
# Create your models here.
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
pub_date = models.DateTimeField(default = timezone.now)
def __str__(self):
return self.title
3-4. admin.py 설정
model.py에 모델을 작성했으니 admin에 추가합니다.
from django.contrib import admin
from blog.models import Post
# Register your models here.
admin.site.register(Post)
3-5. migration
모델이 변경되었으니 장고에 반영하기 위해 마이그레이션 해줍니다.
마이그레이션은 모델의 생성·변경 내역을 관리하고, 데이터베이스에 적용하여 손쉽게 데이터베이스의 구조를 바꾸기 위해 사용하는 명령어 입니다.
python manage.py makemigrations
python manage.py migrate
3-6. 변경사항 확인
장고 서버를 실행하고 admin화면에 잘 반영이 되었는지 확인합니다.
기존의 admin화면에 비해 blog 앱이 새로 생겼고, Post라는 model 생성된 것을 확인할 수 있습니다.
이제 글을 작성해보도록 하겠습니다.
Posts옆의 추가 버튼을 눌러 게시글을 추가합니다.
Pub date 는 3-3에서 모델을 정의할 때 디폴트 값을 현재로 해놓았기 때문에 자동으로 입력되게 됩니다.
작성자를 선택하고, 게시글 작성 후 저장을 클릭합니다.
작성한 게시글이 성공적으로 추가된 것을 확인할 수 있습니다.
지금까지 장고로 게시판을 만들어 보았습니다.
다음 시간에는 admin화면이 아닌 직접 만든 화면에서 글을 작성하고,
url을 통해 접속하는 것을 구현해보도록 하겠습니다.
감사합니다.
'Web Programming > Django' 카테고리의 다른 글
Python Django로 게시판 만들기_게시판 구현(2) (5) | 2020.05.18 |
---|---|
Python Django 로 게시판 만들기 _ Django 프로젝트 생성 (0) | 2020.01.17 |