no image
[Django] Form
우리는 지금까지 HTML form, input 태그를 통해서 사용자로부터 데이터를 받았고 현재 우리의 Django는 들어오는 요청을 모두 수용하고 있다. 하지만 분명 이런 요청 중에는 비정상적인 혹은 악의적인 요청이 있다는 것을 생각해야 한다!! 목차 1. Form 2. Widgets 1. Form 위에서 적은 것처럼 사용자가 입력한 데이터가 우리가 원하는 데이터 형식이 맞는지에 대한 유효성 검증이 반드시 필요. 이런 검증은 많은 부가적인 것들을 고려해서 구현해야 하고, 이는 개발 생산성을 늦출뿐더러 쉽지 않은 작업이다. Django Form은 이 과정에서 과중한 작업과 반복 코드를 줄여줌으로써 훨씬 쉽게 유효성 검증을 진행할 수 있도록 만들어 준다!! # Form에 대한 Django의 역할 Form은 ..
2022.09.06
no image
[Django] CRUD_with_view_functions2 + Admin
이전 글에서는 CREATE와 READ에 대해서 Djago에 적용시키며 배워보았다. 이번 글에서는 남은 UPDATE/DELETE에 대해서 알아보자. 목차 1. DELETE 2. UPDATE 3 Admin Site 1. DELETE # READ 2 (detail page) 개별 게시글 상세 페이지 제작 모든 게시글마다 view function과 템플릿 파일을 만들 수는 없기 때문에 글의 번호(pk)를 활용하자 urls 우선 URL로 특정 게시글을 조회할 수 있는 번호를 받자. 정수형이기 때문에 를 이용해주었다. views view 함수에선 Article.objects.get(pk=pk)에서 1. 오른쪽 pk는 variable routing을 통해 받은 pk 2. 왼쪽 pk는 DB에 저장된 레코드의 id칼럼 ..
2022.09.05
no image
[Django] CRUD_with_view_functions1
저번 글에서 기본적인 데이터 처리 기능 4가지인 Create/Read/Update/Delete에 대해서 알아보았는데 view.py 내부에 함수를 만들어보며 생기는 문제, 시각적 이미지를 알아보자. 목차 1. 사전 준비 2. Read / Create 3. redirect() 4. POST method 5. CSRF 1. 사전 준비 앞서 배웠던 경로 설정 및 base 템플릿 작성을 해보고 시작하자 base 템플릿 작성 bootstrap CDN 및 템플릿 추가 경로 작성 URL 분리 및 연결 index 페이지 작성 index 페이지 작성 순서와 같이 항상 urls -> views -> templates의 순서를 지키면서 작성하자!! 2. READ / CREATE # READ 1(index page) index..
2022.09.05
no image
[Django] QuerySet API
목차 1. 사전 준비 2. QuerySet API 3. CRUD 1. 사전 준비 우선 시작하기에 앞서 편의를 위한 추가 라이브러리 설치해주자! pip install ipython # 파이썬 기본 쉘보다 더 강력한 파이썬 쉘 pip install django-extensions # Django 확장 프로그램 모음으로 shell_plus, graph model 등 다양한 확장 기능 제공 pip freeze > requirements.txt Shell 운영체제 상에서 다양한 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램 셀(껍데기)은 사용자와 운영 체제의 내부 사이의 인터페이스를 감싸는 층이기 때문에 이러한 이름이 붙었다. "사용자 셸 운영체제" Python Shell 파이썬 코드를 실행해주는 인터프..
2022.09.04
no image
[Django] Model
# 목표 : Model의 핵심 개념과 ORM을 통한 데이터 베이스 조작 이해 Django는 웹 애플리케이션의 데이터를 구조화하고 조작하기 위한 추상적인 계층을 제공 목차 1. Database 2. Model 데이터를 구조화, 조작하기 위하여 Database에 대해 간단하게 알아보고 넘어가자. 심화 내용은 다음에! 1. Database 체계화된 데이터의 모임 검색 및 구조화 같은 작업을 보다 쉽게 하기 위해 조직화된 데이터를 수집하는 저장 시스템 # 기본 구조 1. 스키마(Schema) 뼈대(Structure) 데이터베이스에서 자료의 구조, 표현 방법, 관계 등을 정의한 구조 2. 테이블(Table) 필드와 레코드를 사용해 조직된 데이터 요소들의 집합 관계(Realation)라고도 부른다. 필드(field..
2022.09.04
no image
[Django] NameSpace
목표 : 개체를 구분할 수 있는 범위를 나타내는 namespace(이름 공간)에 대한 이해 목차 1. URL namespace 2. Template namespace # Namespace의 필요성 두번째 app pages의 index 페이지를 작성해보면 어떤 문제가 발생하는지 확인할 수 있다. 위와 같이 작성을 하고 확인해보면 articles app index 페이지에 작성한 두번째 앱 index로 이동하는 하이퍼 링크를 클릭 시 현재 페이지로 다시 이동한다. URL namespace pages app의 index url (http://127.0.0.1:8000/pages/index/)로 직접 이동해도 articles app의 index 페이지가 출력됨 Template namespace 1. URL na..
2022.09.03
no image
[Django] URL's
목차 1. URL? 2. App URL mapping 3. URL pattern 4. Django의 설계 철학과 Framwork 성격 이전 글에서 데이터를 url을 통해 요청하고 받는다고 배웠다. url의 작성방법에 대해 자세히 알아보자. 1. URLs? 목표 : "Dispatcher(운행 관리원)로서의 URL 이해하기 웹 어플리케이션은 URL을 통한 클라이언트의 요청에서부터 시작함 Trailing URL Slashes Django는 URL 끝에 /가(Trailing slash) 없다면 자동으로 붙여주는 것이 기본 설정 따라서 모든 주소가 '/'로 끝나도록 구성되어있음 모든 프레임워크가 이렇게 동작하는 것은 아님 Django의 url 설계 철학을 통해 먼저 살펴보면 다음과 같이 설명함 "기술적인 측면에서..
2022.09.03
no image
[Django] Form Data
목차 1. sending and retrieving form data 2. sending form data(Client) 3. Retrieving the data(Server) 장고를 사용하며 기본 문법과 구성에 대해서 공부하였다. 이제는 핵!심!이라고 볼 수 있는 data를 어떻게 주고 받는지에 대해서 알아보자. 1. Sending and Retrieving form data 말 그대로 "데이터를 보내고 가져오기"이다. HTML form element를 통하여 사용자와 애플리케이션 간의 상호작용을 이해하자 Client & Server architecture 웹은 다음과 같이 가장 기본적으로 클라이언트-서버 아키텍처를 사용한다. 클라이언트(일반적으로 웹 브라우저)가 서버에 요청을 보내고, 서버는 클라이언..
2022.09.03
no image
[Django] Template2 - Inheritance(상속)
목차 1. Inheritance 2. example 프로젝트를 진행하며 기본 구성과 같은 같은 코드를 매번 같이 치는 것은 귀찮고 불편한 일이다. 파이썬 class를 배우며 이런 불편함을 해소하기 위하여 함수와 class에 대해서 배웠는데 Django에서도 Class선언을 하여 상속을 해줄 수 있다는 것을 알게 되었다!! 1. Inheritance 템플릿 상속은 기본적으로 코드의 재사용성에 초점을 맞춤 템플릿 상속을 사용하면 사이트의 모든 공통 요소를 포함하고, 하위 템플릿이 재정의(override) 할 수 있는 블록을 정의하는 기본 'skeleton' 템플릿을 만들 수 있음 관련 태그 {% extends 'skeleton name' %} - 자식(하위) 템플릿이 부모 템플릿을 확장한다는 것을 알린다. ..
2022.09.03