Python/Django

Python/Django

[Django] 장고의 작동 구조 & MTV패턴

장고의 작동 구조 1. 클라이언트가 웹브라우저에서 url을 이용해 장고 서버에 접속 ex) xxx.com/ 2. 서버에 접속하면 urls.py는 url요청에 따라 view를 분배 ex) GET xxx.com/myname , POST xxx.com/myposting ... 3. view에서는 클라이언트의 요청을 처리함 4. 데이터 형태를 모델로 표현하고 Create, Read, Update, Delete 인터페이스를 제공 5. 모델에서 요청한 내용을 실제 데이터베이스 내부에서 처리 6. 사용자 요청에 맞게 html을 만들어 사용자의 웹브라우저로 전달 MTV패턴 장고로 만들어진 웹사이트는 모델(model)로 데이터를 추상화하고 뷰(view)로 어떻게 처리를 할지 정하고, 템플릿(template)으로 웹 페이..

Python/Django

[Django] [웹 기초] 웹서버(web server)와 웹앱서버(web application server)

웹서버 / 웹앱서버 역할 프로그램 웹서버 1. 웹클라이언트의 요청을 받아서 처리하고 응답 2. 정적인 페이지(HTML, 이미지, CSS, JS등)을 웹 클라이언트에게 전달할 때 사용. 3. 동적인 처리가 필요한 경우 웹앱서버로 위임 Apache httpd, Nginx, lightpd, Mongoose 등 웹앱서버 1. 웹서버로부터 위임 받은 요청을 처리하고 웹서버로 응답을 전달한다. 2. 동적 페이지 요청 처리 3. DB연동 기능을 처리 Apache Tomcat, JBoss, Jeus, uWSGI, Gunicom 등 정적 페이지 / 동적 페이지 정적 페이지란? 언제, 누가 요청하더라도 항상 같은 내용을 표시하는 웹페이지이며 HTML, JS, CSS, 이미지로 이루어진 페이지를 말한다. 따라서 웹서버에서 ..

Python/Django

[Django] [웹 기초] HTTP 기초

HTTP 이란? HTTP(Hypertext Trasnfer Protocol)은 웹 서버와 웹 클라이언트 사이에서 데이터를 주고받기 위해 사용하는 통신 방식이다. Hypertext인 HTML,XML 뿐만아니라 이미지, 음성, 동영상, 자바스크립트, PDF, 오피스파일 등 컴퓨터에서 사용하는 데이터는 모두 주고받을 수 있다. 예를들어 https://www.google.com/를 웹브라우저 주소창에 입력하고 Enter를 누르면 웹 클라이언트(브라우저)와 웹 서버 사이에 HTTP연결이 맺어지고 웹 클라이언트는 웹 서버에 Reqeust를 보내게 된다. 웹 서버는 Request에 따라 처리한 뒤 Response를 전달한다. HTTP의 특징은 stateless 이다. 즉, 웹 클라이언트와 웹 서버의 연결이 지속되지 ..

Python/Django

[Django] [웹 기초] 웹 프로그래밍이란

1. 웹 프로그래밍 정의 HTTP(S) 프로토콜로 통신하는 client와 server를 개발하는 것 웹클라이언트는 HTML, CSS, JS로 개발하며 웹서버는 Django와 같은 프레임워크를 사용하여 개발한다. 2. 웹 동작 과정 크롬, 파이어 폭스 같은 브라우저들이 대표적인 웹 클라이언트이며 웹브라우저 외에도 curl등의 클라이언트 프로그램으로 웹서버에 요청(Request)를 보낼 수 있다. 클라이언트로 부터 HTTP(S)프로토콜을 통해 요청을 받은 웹서버에서는 요청을 처리한 뒤 다시 웹클라이언트에게 응답(Response)를 전달한다. 클라이언트에서 서버로 요청은 URL을 통해 하는데 URL은 웹 서버에 존재하는 프로그램에 대한 API라고 할 수 있다. 3. 웹 프로그래밍 활용 웹을 (정학히는 http..

Python/Django

[Django] 간단한 REST API 서버 만들기4 - Class Based View에서 POST, GET, PUT, DELETE 구현

진행순서 1. Class Based View인 APIView를 상속하여 UserView 뼈대 만들기 2. POST, GET, PUT, DELETE 함수 구현 1. Class Based View인 APIView를 상속하여 UserView 뼈대 만들기 api_user/views.py에서 APIView를 상속하여 user를 생성, 삭제, 수정, 읽기를 할 수 있는 Class를 만든다. CBV인 APIView를 사용하는 이유는 get, post, update, delete가 클래스내에 함수로 나누어져 있어서 직관성이 좋다. views.py의 UserView의 큰 그림은 아래와 같다. CRUD 함수들이 한 클래스안에 함수별로 나누어진다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ..

Python/Django

[Django] 간단한 REST API 서버 만들기3 - model, serializer 구현

진행순서 1. user에 관한 model구현 및 DB 마이그레이션 2. request, response 처리를 위한 User Serializer구현 1. user에 관한 model 구현 및 DB 마이그레이션 api_user/models.py 에 user에 필요한 데이터들을 Model을 상속하는 User class에 만들어 준다. models.py에 User class를 통해 User를 추상화 했다면 DB에 테이블의 형태로 User 테이블을 만들어 주어야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 from django.db import models # Create your models here. class User(models.Model): user_id = models.CharField(ma..

Python/Django

[Django] 간단한 REST API 서버 만들기2 - http Request에 대한Response 전달

진행순서 1. djangorestframework 패키지 설치 2. user정보를 CRUD 할 수있는 API를 제공하는 api_user 앱 생성 3. REST API 설계 4. URLConf 설정을 통해 request 라우팅 5. view를 구현하여 request 처리 1. djangorestframework 패키지 설치 conda 명령어를 통해 djangorestframework를 설치하면 아래와 같이 패키지를 못찾는 경우가 있다. $ conda install djangorestframework Collecting package metadata (current_repodata.json): done Solving environment: failed with initial frozen solve. Retr..

Python/Django

[Django] 간단한 REST API 서버 만들기1 - 개발 환경설정

준비물 파이참 : 파이썬 개발 IDE 아나콘다 : 파이썬 라이브러리를 패키징해서 배포하는 툴 진행 순서 1. 아나콘다를 이용하여 파이썬 가상환경을 만든다. 2. 파이참에 아나콘다에서 만든 가상환경의 interpreter를 연결한다. 3. django REST API 서버를 만들기 위한 패키지를 설치한다. 4. django 실행. 1. 아나콘다로 가상환경 만들기 아래와 같이 쉘에 명령어를 이용하여 가상환경을 만드다. $ conda create --name my_django python=3.7 my_django는 가상환경이름이고 다음은 python버전을 입력해 준다. 명령어를 입력하면 아래와 같이 가상환경이 만들어 지면서 기본 패키지들이 설치 된다. 가상환경이 설치된 경로를 확인해 둔다. Collecting..

자유로운 범고래
'Python/Django' 카테고리의 글 목록