Hi yoahn 개발블로그

#1 Django Tutorial 본문

Framework & Library/Django

#1 Django Tutorial

hi._.0seon 2020. 8. 14. 17:04
반응형

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

 

들어가며 · HonKit

1차 : 2015. 10. 1. 이수진, 함기훈, Jay Park, 조혜선, 정광윤, 임정훈, 문지영, 김휘경, 송석리, 여형석, 심혜민

tutorial.djangogirls.org

 

1. 파이썬 가상환경 사용하기

(Windows)

 

$ python -m venv myvenv

myvenv 이름으로 가상환경 만들기

 

가상환경 실행하기

$ myvenv\Scripts\activate

 

> 가상환경 종료하기

$ deactivate

 

(myvenv)

pip 설치

$ python -m pip install --upgrade pip

 

django 설치

$ pip install django~=2.0.0

 

(Mac)

$ python3 --version

파이썬 버전 확인

 

$ python3 -m venv myvenv

가상환경 생성

 

$ source myvenv/bin/activate

가상환경 사용하기

(myvenv)

$ python3 -m pip install --upgrade pip

pip: 패키지 설치 명령어

pip 설치

 

$ pip install django~=2.0.0

 

> plantism 가상환경 설치 목록

pip install watson_developer_cloud

pip install --upgrade "ibm-watson>=4.5.0"

pip install Pillow

 

2. Django 란 무엇인가

= 파이썬으로 만들어진 웹 애플리케이션 프레임워크

 

누군가가 서버에 웹 사이트를 요청하면?

-> 요청이 장고로 전달된다.

장고의 urlresolver는 웹 페이지 주소를 가져와서 무엇을 할지 확인

urlresolver는 패턴 목록을 가져와 url과 맞는지 하나씩 대조해 일치하는 것을 찾는다.

일치하는 패턴이 있으면 해당 요청을 관련된 함수(View)에 넘겨준다.

 

모든 일들은 view 함수에서 처리된다.

특정 정보를 데이터베이스에서 찾을 수 있습니다. 그런데 만약 사용자가 데이터를 바꿔달라고 수정을 요청한다면 어떻게 될까요? "제 직업에 대한 설명을 바꿔주세요."와 같은 편지를 받았다고 생각해봅시다. view함수는 수정할 수 있는 권한이 있는지 확인하고 나서, 직업에 대한 설명을 수정해 다시 답장을 주겠지요. "완료했습니다!" 라고요. 그러고 나서 view는 답장을 생성하여, 장고는 그 답장을 그 사용자의 웹 브라우저에 보내주는 역할을 합니다.

 

3. Django 프로젝트

django프로젝트 생성

 

$ django-admin.py startproject mysite .

manage.py

사이트 관리를 도와주는 역할

스크립트로 다른 설치 작업 없이, 컴퓨터에서 웹서버를 시작할 수 있다.

 

settings.py

웹사이트 설정이 있는 파일

 

urls.py

urlresolver가 사용하는 패턴 목록 포함

4. 설정 변경

- 시간대 설정

mysite/settings.py

TIME_ZONE = 'Asia/Seoul'

 

- 정적파일 경로 추가

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, 'static')

 

DEBUG가 True이고 ALLOWED_HOSTS가 비어있으면, 호스트는 ['localhost', '127.0.0.1', '[::1]']에 대해서 유효

 

5. 데이터베이스 설정하기

mysite/settings.py

블로그에 데이터 베이스 생성하기 위해 콘솔 창에서 아래 코드 실행

$ python manage.py migrate

 

6. 웹 서버 시작하기

$ python manage.py runserver

 

> 웹서버 종료: Ctrl + C

 

7. 어플리케이션 만들기

$ python manage.py startapp (blog)

(어플리케이션 이름)

 

새로 생성된 디렉토리 =어플리케이션)을 django에 사용해야 한다고 알려주기

=> mysite/settings.py

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'(어플리케이션 이름)',

]

 

8. 어플리케이션 모델 만들기

Model 객체 -> blog/models.py 파일에 선언하여 생성

 

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

class Post(models.Model):
	author = models.ForeignKey(settings.AUTH_USER_MODEL, 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

class 는 모델을 정의하는 코드 -> 객체 정의

Post -> 모델 이름

 

 

반응형
Comments