티스토리 뷰
Django의 다목적성과 강력한 프레임워크는 단순한 웹사이트와 복잡한 데이터 기반 애플리케이션 모두에 널리 사용된다. Django에 대해 좀 더 자세히 알아보자.
- Architecture (MVT Pattern)
- Model
: 데이터 구조를 정의한다. 데이터베이스 레이아웃을 나타내며 데이터베이스 상호 작용을 담당한다. 예를 들어, 데이터베이스 레코드 생성 및 업데이트는 모델을 통해 수행된다. - View
: 사용자 요청을 처리하고, 모델에서 데이터를 가져오고 일반적으로 HTML 웹 페이지 또는 JSON 으로 응답을 렌더링하는 비즈니스 로직 계층이다. - Template
: 프레젠테이션 계층이다. Django 템플릿 언어를 사용해 사용자의 브라우저로 전송되는 동적 HTML 콘텐츠를 만든다.
- Model
- Key Components
- Django ORM
: 개발자가 SQL 쿼리 대신 Python 코드를 사용해 데이터베이스와 상호 작용할 수 있게 해준다. 이러한 추상화는 데이터 관리를 간소화하고 데이터베이스에 구애받지 않는 개발을 보장한다. - Django Admin
: 추가 코드 없이 애플리케이션의 데이터를 관리할 수 있도록 자동으로 생성되는 사용자 지정 가능한 관리자 인터페이스다. - Django Middleware
: View에 도달하기 전 또는 View가 요청을 처리한 후에 전역적으로 요청을 처리하는 구성 요소다. 로깅 요청, 사용자 인증, 세션 관리 등에 유용하다. - Django Forms
: 사용자 입력을 처리하고 쉽고 안전한 방식으로 유효성을 검사하는 방법을 제공한다. - Django REST Framework (DRF)
: 인증, 직렬화, 요청 처리와 같은 기능을 제공하는 Django로 RESTful API를 구축하기 위한 확장 기능이다.
- Django ORM
- 예제
- Model Definition
from django.db import models class BlogPost(models.Model): title = models.CharField(max_length=200) content = models.TextField() published_date = models.DateTimeField(auto_now_add=True) def __str__(self): return self.title
- View Function
from django.shortcuts import render from .models import BlogPost def blog_list(request): posts = BlogPost.objects.all() return render(request, 'blog_list.html', {'posts': posts})
- Template (blog_list.html)
<!DOCTYPE html> <html> <head> <title>Blog Posts</title> </head> <body> <h1>Blog Posts</h1> <ul> {% for post in posts %} <li>{{ post.title }} - {{ post.published_date }}</li> {% endfor %} </ul> </body> </html>
- URL Configuration
from django.urls import path from .views import blog_list urlpatterns = [ path('', blog_list, name='blog_list'), ]
- Model Definition
- Django의 강점
- Rapid Development
: 관리자 인터페이스 및 ORM과 같은 기본 제공 기능을 통해 개발자는 앱을 빠르게 프로토타이핑하고 빌드할 수 있다. - Scalable
: 캐싱, 데이터베이스 최적화 및 클라우드 서비스를 사용해 트래픽이 많은 애플리케이션을 처리할 수 있도록 확장할 수 있다. - Security
: 일반적인 취약성으로부터 보호하고 기본적으로 모범 보안 사례를 따른다. - Community Support
: 활발하게 활동하는 대규모 커뮤니티에서 다양한 타사 패키지, 튜토리얼 및 지원을 제공한다.
- Rapid Development
- Typical Django Workflow
- django-admin startproject projectname 을 사용해 새 장고 프로젝트를 만든다.
- models.py 에서 Model을 생성해 앱의 데이터 구조를 정의한다.
- python manage.py makemigrations 및 python manage.py migrate 명령을 사용해 데이터베이스 테이블을 생성한다.
- views.py 에서 View를 생성해 요청을 처리하고 응답을 렌더링한다.
- urls.py 에서 URL을 보기에 매핑하기 위한 경로를 정의한다.
- 템플릿을 만들어 웹 페이지를 구성한다.
- python manage.py runserver 를 사용해 로컬에서 서버를 실행하여 애플리케이션을 테스트한다.
- Django 사용 사례
- Content Management Systems (CMS)
- E-commers Platforms
- Social Networking Sites
- Scientific Computing Applications
- RESTful Web Services and APIs
반응형
'기술(Tech, IT) > 웹(Web)' 카테고리의 다른 글
[Web] {{ form.as_p }} (1) | 2024.11.07 |
---|---|
[Web] Django - 1 (0) | 2024.11.07 |
[Web] HTML form 태그 (0) | 2023.07.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Computer Graphics
- The Economist
- 파이썬
- defaultdict
- C++
- tf-idf
- 소켓 프로그래밍
- 딕셔너리
- machine learning
- 오블완
- Hash Map
- ml
- 안드로이드
- The Economist Espresso
- 머신 러닝
- 이코노미스트 에스프레소
- 티스토리챌린지
- vertex shader
- DICTIONARY
- socket programming
- leetcode
- java
- Android
- Python
- 리트코드
- I2C
- 이코노미스트
- 투 포인터
- min heap
- join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형