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시작
# 데이터베이스 시작
- sqlite3 개발도구 설치
- 64bit zip파일로 다운
- 압축파일을 푼다
- 압축을 푼 파일에서 DB Browser for SQLite.exe 실행
- 데이터베이스 열기 크릭
- Django프로젝트에서 생성된 db.sqlite3 파일을 선택해서 열자
- 다음과 같은 테이블들이 자동으로 생성된 것을 확인할 수 있다.
- Superuser 생성 및 관리자 화면
- 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)"
'Python > Django' 카테고리의 다른 글
django 와 mongodb연동 (0) | 2020.08.17 |
---|---|
페이지네이션 (0) | 2020.08.11 |
Django 댓글기능 추가 (0) | 2020.08.07 |
Django 템플릿 상속 / 게시판 만들기 (0) | 2020.08.06 |
Django (Migrate / URLConf / View / Template / QuerySet / Bootstrap) (0) | 2020.08.05 |