본문 바로가기

Python/Django

Django설치 및 설정 & 간단한 게시판 만들기

1. 세팅

- 파이썬 깔린 곳 위치 확인

 

- 파이썬 깔린 위치 확인 후, 다음과 같이 환경변수 추가

 

- PyCharm Terminal창에서 파이썬 version & Anaconda내장 파이썬 아닌 찐 파이썬 그 자체로 설정되있는지 확인

 

- PyCharm Terminal창에서 django 설치

 

- django 버전 확인

 

- django 설치 확인

 

 

 

2. Django 프로젝트 생성

- 자신이 원하는 폴더 아래 django_src라는 하위 폴더 생성

 

- Django 프로젝트 생성 명령어

 

- django_src폴더 안에 manage.py 파일과 자신이 지정한 이름의 폴더가 생성된 것을 볼 수 있다.

 

- 폴더 안에는 다음과 같은 구성으로 돼있다.

- manage.py : 웹사이트 관리를 도와주는 역할을 하는 파일 (절대 지우면 안됨)

- settings.py : 웹사이트 설정이 있는 파일

- urls.py : urlresolver가 사용하는 요청 패턴 목록을 포함하고 있는 파일

 

 

- Django 프로젝트 설정 변경

 

3. Django 프로젝트 DB생성과 Server시작

# 데이터베이스 시작

디비 생성 명령어, 처음 한번만 해주면 됨

 

db.sqlite3 파일 생성됨

 

- sqlite3 개발도구 설치

https://sqlitebrowser.org/dl/

 

Downloads - DB Browser for SQLite

(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.0) for Windows: Note - If for any reason the standard Windows release does not work (e.g. gives an error), try a nightly build (below). Nightly builds often fix bugs reported

sqlitebrowser.org

 

- 64bit zip파일로 다운

 

- 압축파일을 푼다

 

- 압축을 푼 파일에서 DB Browser for SQLite.exe 실행

 

- 데이터베이스 열기 크릭

 

 

- Django프로젝트에서 생성된 db.sqlite3 파일을 선택해서 열자

 

- 다음과 같은 테이블들이 자동으로 생성된 것을 확인할 수 있다.

 

- Superuser 생성 및 관리자 화면

django / django 계정 생성

 

- auth_user테이블에 마우스 오른쪽 버튼을 클릭해 테이블 보기를 한다.

 

- 그럼 superuser설정을 하면서 등록한 정보가 테이블 내에 저장된 것을 확인할 수 있다.

 

# Server시작

서버 시작 명령어

- 다음과 같이 서버가 잘 시작된 것을 페이지를 띄워 확인 가능

 

 

- INSTALLED_APPS 라는 곳에 admin이 정의돼있기 때문에 url에 admin을 추가했을 때 접근 가능

 

- Supteruser를 설정했으니 본 url에 admin을 추가해 들어가본다.

 

- 관리자 페이지로 들어온 것을 볼 수 있다.

- 아까 설정해 준 아이디/비밀번호를 입력해 들어간다.

 

- 아이디/비밀번호를 입력해 들어오면 다음과 같은 화면이 보인다.

- 사용자들을 클릭해본다.

 

- Superuser를 설정할 때 등록한 이름, 이메일, 비밀번호등의 정보를 확인할 수 있다.

- 비밀번호는 암호화 되어 저장되어 있다

 

 

4. 블로그 라는 이름의 앱 만들기

1) App 디렉토리 생성

- python manage.py startapp blog

- django/donf/app_template 구성으로 App디렉토리가 생성되어진다.

 

 

 

2) App을 프로젝트에 등록

- 아래와 같이 mydjango/settings.py 을 편집하여, INSTALLED_APPS 항목 끝에 blog App 이름을 추가한다.

 

3) models.py에 Model 만들기

- 모델 객체는 blog/models.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()
    # 작성일자
    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()

    # 객체 주소 대신 글제목을 반한해주는 toString()함수
    def __str__(self):
        return self.title

 

 

4) DB에 테이블 만들기

- 마이그레이션 파일 생성하기(python manage.py makemigrations blog)

- 실제 데이터베이스에 Model 추가를 반영하기(python manage.py migrate blog)

 

- PyCharm에서 migrations > 0001_initial.py 을 들어가보면 Model이 잘 만들어졌는지 확인할 수 있다.

 

5) 관리자 페이지에서 만든 모델을 보기 위해 Post모델을 등록

 

- 관리자 화면에서 확인하기

- 현재는 2개의 게시물이 작성되어있다.

 

- 새로운 글 추가

 

- 글이 한 개 추가되어 3개의 게시물이 됐다.

- model.py에서 toString()역할을 하는 함수를 정의해 주었기 때문에 제목이 title에 있는 값으로 잘 나온다.

 

5. 내가 원하는 테이블 만들어보기

- Board 라는 앱

- writer, title, contents1, contents2, write_date, published_date

 

 

 

 

완료!!!!

 


6. 기타

<ORM 매핑 Rule>

Class <=> Table

Object <=> Row(Record)

Variable <=> Column

 

<MVC vs MVT>

spagetti code : 역할분리 안돼있음, 유지보수 어려움  --> 역할의 분리 "Seperation Of Concerns(Responsibility)"