Django 35

Django - ORM(Object-Relational Mapping)

ORM(Object-Relational Mapping)  객체지향 언어(예: Python)의 객체를 사용해 데이터베이스를 조작할 수 있게 해주는 도구  • 객체지향 언어는 데이터를 클래스와 객체로 다루고,   관계형 데이터베이스는 테이블과 행으로 데이터를 관리→ 두 시스템 간의 개념적 차이를 줄이는 것이 ORM의 역할 ORM을 사용하면 SQL문을 직접 작성하지 않고도 Python 코드만으로 데이터베이스를 조작할 수 있음   ORM의 주요 사례 • Python: Django ORM, SQLAlchemy, Tortoise ORM • Java: JPA, Hibernate • Node.js: Sequelize Django 프로젝트에서는 별도의 언급 없이 ORM을 기본으로 사용(Django가 기본적으로 ORM기능..

Django - Model

Django - Model 데이터베이스의 구조(layout)와 데이터를 조작하기 위한 필드 및 동작을 포함models.Model을 상속받아 사용하며, 보통 하나의 Model은 하나의 데이터베이스 테이블에 대응   • Database(데이터베이스): 잘 정리된 데이터의 집합 • Query(쿼리): 데이터베이스 조작을 위한 언어 • Schema(스키마): 데이터베이스의 구조와 데이터 간의 관계를 정의한 설계도 • Table(테이블): 데이터를 저장하는 조직화된 집합 (열: 속성/필드, 행: 데이터/레코드/튜플) • Primary Key(PK): 각 테이블의 각 데이터를 유일하게 식별하는 열 →데이터베이스를 Django의 Model을 사용해서 구조화하고 조작!    Django Model 생성하기 앱 내 mo..

Django - URLs

URL 패턴 정의 Django에서 URL 패턴은 urls.py에서 정의되며, 일반적으로 path() 함수를 사용  URL Dispatcher들어온 요청(URL)이 어느 view 함수로 처리되어야 할지를 결정하는 Django의 시스템Django는 URL을 구조적으로 매핑하여 가독성과 유지보수성을 높임  URL 분리와 다중 앱 구성 Multiple Apps 구성• 프로젝트가 복잡해지면 앱 별로 URL과 view를 관리하는 것이 효과적• 각 앱 내부에 urls.py를 추가하여 정리 가능   users 앱 생성python manage.py startapp users  users앱 등록  users 앱 내 urls.py, views.py, templates/profile.html, templates/users.h..

Django - HTTP Form

Form과 Input을 활용하여 데이터 송수신하기 Django에서는 클라이언트가 입력한 데이터를 서버에 전송하고, 이를 처리하여 다시 클라이언트에 보여줄 수 있음   Form과 Input 요소를 활용해 데이터를 송수신하는 방법 urls.py에 URL경로 추가 views.py에 View 함수 추가 templates/data_throw.html 생성   Form 태그 속성action: 데이터를 보낼 URL 경로 설정method: 데이터를 전송할 HTTP 메서드여기서는 GET 방식 사용 templates/data_catch.html 생성 {{ data }}서버에서 전달된 데이터를 템플릿에 표시     요청이 들어오면 Django는 HttpRequest객체 생성 →  urls에서 지정한 view 함수의 첫번째 ..

Django - Template System/ Django Template Language(DTL)

Django Template System  Template System Django에서 Template은 데이터를 사용자에게 보여주는 역할을 담당기본적으로 각 앱의 templates 디렉토리 내에 위치하며, Django는 settings.py 파일의 TEMPLATES 설정에서 이 디렉토리를 자동으로 검색  Django Template Language (DTL) Django의 템플릿에서 사용되는 문법Python과 유사하지만 실제 Python이 동작하는 것은 아님   변수(Variable) 변수의 기본 형태{{ variable }} View에서 전달된 context의 데이터를 템플릿에서 접근. 을 사용하여 변수의 속성값에 접근{{object.attribute}}→render()의 세번째 인자인 context..

Django - Template

views.py작성 ulrs.py작성 앱 내부에 templates 폴더 생성(+HTML 템플릿 작성)VScode에서 ! + Tab 기본적인 HTML파일 구조가 생성되는 자동완성 지원  settings.py 확인(TEMPLATES 설정에서 DIRS 및 APP_DIRS 경로 확인      Django 요청과 응답 흐름 HttpRequest → URLs → View → Template → View → HttpResponse    Django에서 클라이언트 요청을 처리하고 응답을 반환하는 흐름1. 요청(Request)• 클라이언트(브라우저)에서 특정 URL로 요청을 보냄• 예: http://127.0.0.1:8000/index/  2. URL 처리 (urls.py)• Django는 요청받은 URL을 기반으로 u..

Django - Design Patterns

디자인 패턴   자주 사용되는 소프트웨어의 구조와 문제 해결 방법을 일반화한 개념디자인 패턴을 통해 소프트웨어 개발 과정에서 공통적으로 발생하는 문제를 효과적으로 해결 가능 클라이언트-서버 구조도 하나의 디자인 패턴   소프트웨어에서의 공통 구조: 디자인 패턴 소프트웨어 개발 시 다양한 응용 프로그램을 만드는 과정에서 공통적인 구조와 문제를 발견→ 이를 해결하기 위해 디자인 패턴이 탄생 설계를 빠르고 효율적으로 진행공통 문제에 대해 재사용 가능한 해결책을 제공개발 생산성을 높이고 유지보수를 쉽게 함   Django와 디자인 패턴  Django 프레임워크는 설계 철학에 따라 디자인 패턴을 활용 → MTV 패턴 구조를 채택   MVC 패턴 MVC는 소프트웨어를 Model, View, Controller의 세..

Django - Request & Response

요청과 응답 Client ---- Request ----> ServerClient    요청(Request) 클라이언트(웹 브라우저, 모바일 앱 등)가 서버에게 보내는 메시지클라이언트의 정보, 요청의 형식, 인증 정보 등을 포함데이터를 포함하며, JSON이나 HTML 폼 데이터와 같은 형식으로 전달클라이언트가 요청하는 것이 무엇인지 URL을 보면 파악할 수 있음요청 메서드: 작업의 종류GET: 데이터 조회POST : 데이터 생성PUT : 데이터 수정DELETE : 데이터 삭제• URL: 요청의 대상(리소스)• 헤더(Header): 요청에 대한 부가 정보 (예: 인증 토큰)• 본문(Body): 요청 데이터 (주로 JSON 형식)POST /api/userHost: example.comAuthorization..

Django - Client↔Server

클라이언트-서버  클라이언트(Client)서비스를 요청하는 주체 요청(Request)를 보내는 컴퓨터주로 웹 브라우저나 인터넷에 연결된 장치를 의미사용자 PC, 스마트폰 서버(Server)자원을 제공 자원을 관리하고 응답(Response)을 보내는 컴퓨터클라이언트의 요청을 처리하고 응답구글의 데이터 센터 컴퓨터  클라이언트-서버의 동작 원리  클라이언트가 요청 → 서버가 응답 → 클라이언트가 결과를 해석  사용자가 브라우저에서 구글에 접속하려고 '구글 홈페이지.html'파일을 요청→구글 서버는 요청을 처리하고 '구글.html'파일을 클라이언트에게 전달→브라우저가 전달받은 파일을 해석해 사용자에게 웹 페이지를 보여줌  API서버는 데이터를 응답할 때 HTML뿐만 아니라 API를 통해 JSON이나 XML형태..

Django - App

Django App  Django에서 App == 하나의 기능 단위 모듈예 : 게시판 기능, 채팅 기능 등  프로젝트(Project)앱(App)어플리케이션의 집합체(하나의 서비스)각각의 기능 단위 → 공통된 기능을 재사용 가능하게 설계하면 반복 작업을 줄이고 효율성을 높일 수 있음→ 프로젝트 초기부터 기능별로 앱을 구분하여 설계하면 유지보수와 협업 효율성이 높아짐    앱 생성하기python manage.py startapp 앱이름  python manage.py startapp articles=> 프로젝트 내부에 새롭게 앱 디렉토리가 생성 ( articles/) 앱 이름은 복수형으로 짓는 것을 권장   앱 등록하기 프로젝트 폴더 settings.py파일의 INSTALLED_APPS 리스트에 새 앱 이름..

728x90