2024/09 9

Authentication System 01 [Django]

Cookie & SessionHTTPHTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 규약. 웹(WWW)에서 이루어지는 모든 데이터 교환의 기초 HTTP 특징비연결 지향(connectionless)서버는 요청에 대한 응답을 보낸 후 연결을 끊음무상태(stateless)연결을 끊는 순간 클라이언트와 서버 간의 통신이 끝나며 상태 정보가 유지되지 않음 쿠키(cookie)서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각서버가 제공하여 클라이언트 측에서 저장되는 작은 데이터 파일사용자 인증, 추적, 상태 유지 등에 사용되는 데이터 저장 방식쿠키 동작 예시브라우저가 웹 서버에 웹 페이지를 요청웹 서버는 요청된 페이지와 함께 쿠키를 포함한 응답을 브라우저에게 전송브라우저는 받은 쿠키를 저장소에 저쿠키..

Django 2024.09.30

Static [Django]

Static Files (정적 파일)서버 측에서 변경되지 않고 고정적으로 제공되는 파일이미지, JS, CSS 파일 등 웹 서버와 정적 파일웹 서버의 기본 동작은 특정 위치(URL)에 있는 자원을 요청(HTTP request) 받아서 응답(HTTP response)을 처리하고 제공하는 것이는 '자원에 접근 가능한 주소가 있다.' 라는 의미이다.웹 서버는 요청 받은 URL로 서버에 존재하는 정적 자원을 제공한다. ▷ 정적 파일을 제공하기 위한 경로(URL)이 필요!!! Static files 기본 경로app폴더/static(약속)/ app이름과 동일한 이름의 폴더 경로(권장) 에 이미지 파일을 배치약속app폴더/static권장 app폴더/static/ app이름과 동일한 이름의 폴더 경로나중에 다른 앱이 생..

Django 2024.09.26

Django Form [Django]

지금까지는 HTML의 'Form' 태그를 이용해서 사용자로부터 데이터를 받았다. 그러나 이는 비정상적 혹은 악의적인 요청을 필터링 할 수 없다. (유효한 데이터인지에 대한 확인이 필요) 따라서 우리는 수집한 데이터가 정확하고 유효한지 확인하는 과정(유효성 검사)이 필요하다.유효성 검사를 구현하기 위해서는 입력 값, 형식, 중복, 범위, 보안 등 많은 것들을 고려해야 하는데, Django가 제공하는 Form을 사용하여 구현할 수 있다.  Django Form사용자 입력 데이터를 수집하고 처리 및 유효성 검사를 수행하기 위한 도구→ 유효성 검사를 단순화하고 자동화 할 수 있는 기능을 제공사용자로부터 데이터를 수집하고 처리하기 위한 강력하고 유연한 도구HTML form의 생성, 데이터 유효성 검사를 쉽게 할 ..

Django 2024.09.25

Django ORM with view [Django]

shell에서 데이터 CRUD를 해봤다면 이제 view함수를 통해서 데이터를 처리해보자!!참고로 url은 앱별로 따로 관리하도록 설계했다. 헷갈리지 말자!!# todo_list_projcet/urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('todos/', include('todos.urls')), path('accounts/', include('accounts.urls')),]  CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(..

Django 2024.09.24

Django ORM [Django]

ORM(Object-Relational-Mapping) 이란객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형의 시스템 간에 데이터를 변환하는 기술ORM의 역할Django와 DB간에 사용하는 언어가 다르기 때문에 소통이 불가능한다. Django에 내장된 ORM이 중간에서 이를 해석한다. ORM, QuerySet API를 사용하는 이유?1. 데이터 베이스 추상화개발자는 특정 데이터베이스 시스템에 종속되지 않고 일관된 방식으로 데이터를 다룰 수 있다.2. 생산성 향상복잡한 SQL 쿼리를 직접 작성하느 대신 Python 코드로 데이터베이스 작업을 수행할 수 있다.3. 객체 지향적 접근데이터베이스 테이블을 Python  객체로 다룰 수 있어 객체 지향 프로그래밍의 이점을 활용할 수 있음QuerySet AP..

Django 2024.09.23

Django Model 생성하기[Django]

Django 는 DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공하고 있다. 생성 과정 1. Model 클래스 작성생성한 app의 models.py에 클래스 작성클래스는 관례적으로 앞글자를 대문자를 써서 구분필드명을 정의하고 "데이터 유형" 과 "제약 조건"을 정의id 필드는 Django에서 자동으로 생성한다.django.db.models 모듈의 Model이라는 부모 클래스를 상속 받는다.Model은 model과 관련된 모든 코드가 작성되어 있는 클래스로 개발자는 가장 중요한 테이블 구조에 대한 코드만 작성하도록 하기 위한 것(상속을 활용한 프레임워크의 기능 제공)# my_app/models.pyclass My_App(models.Model): title = models.CharField(..

Django 2024.09.23

Django 프로젝트 생성하기 [Django]

가상환경이란?python 애플리케이션과 그에 따른 패키지들을 격리하여 관리할 수 있는 독립적인 실행 환경 - 가상환경을 사용하는 이유는?1. 의존성관리라이브러리 및 패키지를 각 프로젝트마다 독립적으로 사용 하기 위해2. 팀 프로젝트 협업모든 팀원이 동일한 환경과 의존성 위에서 작업하여 버전간 충돌을 방지하기 위해주의사항 및 권장 사항가상 환경에 "들어가고 나오는" 것이 아니라 Python 환경을 "On/Off" 로 전환하는 개념강상 환경 활성화는 현재 터미널 환경에만 영향을 미친다새 터미널 창을 열면 다시 활성화해야 함가상환경은 "방"이 아니라 "도구 세트"활성화는 특정 도구 세트를 선택하는 것프로젝트 마다 별도의 가상환경을 사용일반적으로 가상환경 폴더 venv는 관련된 프로젝트와 동일한 경로에 위치가상..

Django 2024.09.18

django 란 무엇인가? [django]

Web application (web servcie) 개발인터넷을 통해 사용자에게 제공되는 소프트웨어 프로그램을 구축하는 과정다양한 디바이스(모바일, 테블릿, PC 등)에서 웹 브라우저를 통해 접근하고 사용할 수 있다.웹의 동작방식우리가 컴퓨터 혹은 모바일 기기로 웹 페이지를 보게 될 떄까지 무슨 일이 일어나는지 알아보자 웹 서비스에는 크게 두가지의 개념이 있다.Client (클라이언트)서비스를 요청하는 주체 (웹 사용자의 인터넷이 연결돤 장치, 웹 브라우저)requestServer(서버)클라이언트의 요청에 응답하여 데이터를 제공하는 주체 (웹 페이지, 앱을 저장하는 컴퓨터)response예시)웹 브라우저(client)에서 'google.com'을 입력 후 엔터웹 브라우저는 인터넷에 연결된 전세계 어딘 ..

Django 2024.09.17