상세 컨텐츠

본문 제목

Django (1) 기본 개념 및 설치 방법

개발 Recording/Django

by sm-stack 2023. 6. 11. 15:29

본문

Django란?

파이썬을 바탕으로 하고 데이터베이스 기반 웹 앱을 개발하기에 좋은 프레임워크.

 

 

모델 디자인

Django에서는 객체-관계 맵핑(Object-Relational Mapping, ORM)을 통해 데이터베이스 레이아웃을 설명한다.

 

** ORM이란?

객체(Object)와 RDB(Relational Database)에서 쓰이는 테이블을 자동으로 매핑하는 것을 의미. 서로 원래 호환 불가능하지만, ORM을 쓰면 객체 간 관계를 바탕으로 SQL문을 자동으로 생성해 불일치를 해결할 수 있다. 

  • 장점
    • 완벽히 객체지향적인 코드; SQL문의 문법을 신경쓰지 않아도 된다.
    • 재사용, 유지보수, 리팩토링 용이
    • DBMS(Database Management System) 종속성 하락
  • 단점
    • 복잡할 수록 난이도 올라감
    • 일부 대형 SQL문은 별도의 튜닝이 필요하기 때문에, 결국 SQL문을 써야할 수도 있음

데이터 모델 syntax는 모델을 표현하는 다양한 방법을 제공.

예시)

from django.db import models

class Reporter(models.Model):
    full_name = models.CharField(max_length=70)

    def __str__(self):
        return self.full_name

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):
        return self.headline

 

설치 방법

설치

python -m install Django

 

설치 확인

python -m django --version

 

프로젝트 시작

django-admin startproject mysite

→ 다음과 같은 디렉토리가 생김.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

각각은 다음과 같은 기능을 한다.

  1. manage.py : 명령줄 기능.
  2. __init__.py: 이 디렉토리는 파이썬 패키지로 고려되어야 한다고 파이썬에게 말해주는 빈 파일.
  3. setting.py : Django 프로젝트를 위한 설정 / 구성 사항.
  4. url.py: Django 프로젝트를 위한 URL declaration.
  5. asgi.py: ASGI-compatible 웹 서버에 대한 엔트리포인트
  6. wsgi.py: WSGI-compatible 웹 서버에 대한 엔트리포인트

개발 서버 시작

python manage.py runserver

http://127.0.0.1:8000/ 에 들어가서 확인 가능.

'개발 Recording > Django' 카테고리의 다른 글

Django (3) 투표 앱 만들기 - 1  (0) 2023.06.16
Django (2) Major Components  (0) 2023.06.11

관련글 더보기