전체 글 40

[Django] REST Architecture

REST(REpresentational State Transfer) : HTTP를 이용해 통신하는 네트워크상에서 정한 약속 : 인터넷, 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 설계 형식 : 자원을 대표하는 단어 or 식별자로 자원의 상태를 전송하는 방법 *자원 : 인터넷에서 제공하고 얻을 수 있는 모든 것 : 자원을 이름으로 구분하여 상태를 전송하는 방법 REST가 필요한 이유? 웹의 독립적인 운용과 발전의 측면 1. 하위 호환(기존의 약속들)을 깨뜨리지 않고 독립적 발전 REST 설계 조건 : REST가 되기 위한 필요충분조건 1. Server - Client 2. STATELESS 3. Cache 4. Uniform Interface 5. Layered System 6. Code-On-..

Server/django 2020.04.28

[Django] JSON, Http Request & Method, Httpie

JSON(JavaScript Object Notation) 데이터의 송수신을 자바스크립트의 객체로서 수행할 수 있게 하는 가벼운 문자열 데이터 표현식 django REST framework API 서버는 데이터만 주고받는다. 스타일이나 로직 없이 JSON 데이터로서 표현된 요청과 응답 결과를 담은 의사만 전달한다. cf. XML(Extensible Markup Language) 데이터 표현식 중 하나 장점 : JSON에 비해 다양한 데이터를 나타낼 수 있지만 단점 : 데이터의 크기가 너무 크다. 그렇다면 자바스크립트 객체 그대로 보내면 안되나? 답은 안된다. 통신하는 대상, 즉 모든 수신자가 자바스크립트 객체 표현식을 아는건 아니다. 이런 고민을 해결해주기 위해서 자바스크립트 문법(객체)을 그대로 보내는..

Server/django 2020.04.23

[Django] CRUD

ORM (Object Relational Mapping) 정의하고자 하는 데이터를 클래스(객체)로 표현하는 것을 말한다. 객체로 관계형 DB를 다루기 때문에 SQL문을 사용하지 않고도 데이터베이스안에 원하는 데이터를 바로 적용 가능하다. 데이터를 다루는 네 가지 방법 CRUD import 부분 from django.shortcuts import render, redirect, get_object_or_404 from django.utils import timezone from .models import Blog from .form import NewBlog C ( Create ) def create(request): # 새로운 데이터(새로운 블로그 글)를 저장하는 역할 == POST if (request..

Server/django 2020.04.16

[Django] 장고 기초 - AWS 배포하기

1. AWS 과금 주의 2. AWS 계정 생성 (회원가입) 3. elastic beanstalk 명령어를 입력하기 위해서 awsebcli 설치 pip install awsebcli --upgrade --user .gitignore 생성 먼저 깃에 프로젝트를 올린다. 곧 beanstalk관련 된 파일들이 생기는데 이것들을 굳이 저장소에 올릴 필요가 없으니 gitignore파일을 수정 해준다. ### Django ### *.log *.pot *.pyc __pycache__/ local_settings.py db.sqlite3 media # Elastic Beanstalk Files .elasticbeanstalk/* !.elasticbeanstalk/*.cfg.yml !.elasticbeanstalk/*.g..

Server/django 2020.03.05

[Django] 장고 기초 - PostgreSQL DB연동

django 프로젝트를 생성하면 기본 DB로 sqlite가 생성되는데 이는 소규모 프로젝트에 적합하지만, 프로젝트의 규모가 커지고, 협업이 필요해지는 상황에서는 부족하기에 sqlite 대신 다른 데이터베이스와의 연동이 필요해진다. PostgreSQL 다른 DB 연결하기 1. 다른 DB 설치 https://www.postgresql.org/download/windows/ -> Download the installer PostgreSQL을 포함한 데이터베이스 자체가 서버다. 2. pgAdmin 4 실행 후 Databases > Create > Database 내용을 작성하고 Save를 누르면 새로운 데이터베이스가 생긴다. 3. django가 어떤 데이터베이스를 쓸 것인지 명시하는 부분은 settings.py..

Server/django 2020.03.05

[Django] 장고 기초 - App 재사용

project안의 여러 App들은 하나의 역할만을 담당하도록 설계되어있다. account(회원가입)나 comments(댓글)와 같이 다른 웹사이트에서도 공통적으로 만들어야하는 기능을 앱으로 구현하였다면 해당 App을 "패키징"하여 다른 웹사이트에 적용할 수 있다. 패키징이란? 패키지 묶기 해당 앱 외부에 새로운 폴더를 하나 만들어 앱을 폴더 안으로 '이동' 시킨다. (복사X) 장고 공식 문서를 이용해 다음과 같은 4개의 파일을 만든다. ① README.rst : 패키지의 소개/사용설명서/기능명세서 Polls ===== Polls is a simple Django app to conduct Web-based polls. For each question, visitors can choose between a..

Server/django 2020.03.03

[Django] 장고 기초 - 썸네일 만들기

썸네일 기능을 사용하면 좋은점 1. 썸네일 파일 지정 용이 2. 파일 용량 관리 (확장자, 압축방식 지정 가능, 중복사용 방지) 3. 파일 분류에 효율적 (본 파일과 썸네일 파일 분류) [Django] 장고 기초 - portfolio (static & media) Static File은 정적 파일을 의미하는데 미리 서버에 저장되어 있는 파일을 말한다. 정적 파일은 프로젝트 입장에서 이미 무엇인지 아는 파일인 "static" 웹 서비스 이용자들이 업로드하는 파일인 "media" 두개로.. sss20-02.tistory.com media 파일을 다루는 포스팅을 참고해 기본 셋팅들을 만들어 주신 후에 따라와 주세요! 1. $pip install pillow django-imagekit 2. settings.p..

Server/django 2020.03.01

[Django] 장고 기초 - API

API란? Application Programming Interface의 약자로 응용프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있는 인터페이스를 뜻한다. 응용프로그램 → 우리가 만든 웹 서비스(django project) 운영 체제나 프로그래밍 언어가 제공하는 기능 → 우리가 갖고 있지는 않지만 사용하고 싶은 외부 기능들로 Google, Naver, Facebook, Kakao로 부터 끌어다 쓰고 싶은 기능들 인터페이스 → 연결지어주는 다리 역할 따라서, 우리가 만든 웹 서비스에서 사용할 수 있도록, 외부에서 끌어다 쓰고 싶은 기능을 제어할 수 있는 연결통로(연결수단)를 뜻한다. Maps NAVER CLOUD PLATFORM에서 회원가입과 결제 수단 등록을 다..

Server/django 2020.02.28

[Django] 장고 기초 - 소셜 로그인 (Google)

장고 로그인과 소셜 로그인 비교 기존의 login 방식 Social 계정 login 방식 db.sqlite3에 데이터 저장 DB와 DB를 다루는 로직이 한 공간에 있음 DB와 DB를 다루는 로직이 다른 공간에 있음 (Google, Facebook, Kakao, Naver 등 과 같은 서버와 연결함) 소셜 로그인 구현 (Google) 1. $ pip install django-allauth 2. settings.py 3. urls.py from django.urls import include path('accounts/', include('allauth.urls')) 4. 데이터베이스, 모델, URL 등을 처리 $ python manage.py migrate 5. Django admin 으로 들어가면 Si..

Server/django 2019.12.31

[Django] 장고 기초 - Form

하나하나 form 태그를 만드는 것의 한계로 모델 기반으로 한 입력 공간 만들기(forms.ModelForm)와 임의의 입력 공간 만들기(forms.Form) 두 가지가 있다. 모델을 기반으로 한 입력 공간 만들기 : forms.ModelForm 이용 forms.py from django import forms from .models import Blog urls.py path('newblog/', views.blogpost, name="newblog") views.py from .forms import BlogPost new.html cf. form의 형태 {{ form.as_table }} : form의 내용(입력공간)이 table(표) 형식으로 출력 {{ form.as_p }} : form의 내용(..

Server/django 2019.12.30