백엔드 18

플라스크 ORM 라이브러리 사용하기

파이썬 ORM 라이브러리 중 가장 많이 사용하는 SQLAlchemy를 사용해 보자. 이와 더불어 파이썬 모델을 이용해 테이블을 생성하고 컬럼을 추가하는 등의 작업을 할 수 있게 해주는 Flask-Migrate 라이브러리도 사용해 보자. 01. ORM 라이브러리 설치하기 Flask-Migrate 라이브러리를 설치하면 SQLAlchemy도 함께 설치되므로 myproject 가상 환경에서 다음 명령을 수행하여 Flask-Migrate 라이브러리를 설치하자. pip install Flask-Migrate 02. 설정 파일 추가하기 파이보에 ORM을 적용하려면 config.py라는 설정 파일이 필요하다. 루트 디렉터리에 config.py 파일을 생성하고 다음과 같은 코드를 작성하자. SQLALCHEMY_DATAB..

백엔드 2021.08.06

ORM(object relational mapping)

데이터를 저장하거나 수정하는 등 데이터를 처리할 때에는 데이터베이스를 사용한다. 이때, SQL 쿼리라는 구조화된 질의를 작성하고 실행하는 등 복잡한 과정이 필요한데 ORM(object relational mapping)을 이용하면 파이썬 문법만으로도 데이터베이스를 다룰 수 있다. SQL 쿼리와 ORM 비교 id subject content 1 안녕하세요 가입 인사드립니다! 2 질문 있습니다 ORM이 궁금합니다. 이때, 구성된 question 테이블에 새로운 데이터를 삽입하는 쿼리는 보통 다음처럼 작성한다. insert into question (subject, content) values ('안녕하세요', '가입 인사드립니다!'); insert into question (subject, content) ..

백엔드 2021.08.06

블루프린트 라우트 함수 관리

from flask import Flask def create_app(): app = Flask(__name__) @app.route('/') --- 매핑 만들어줌 : 라우트 함수 def hello_pybo(): --- URL에서 /에 매핑돠는 함수 return 'Hello, pybo!' return app 이전에 작성해본 코드는 새로운 URL이 생길 때마다 라우트 함수를 create_app 함수안에 계속 추가해야 하는 귀찮음이 있다. 이를 해결해주는 클래스가 블루프린트다. 블루프린트(Blueprint) : '청사진', 플라스크에서는 URL고 호출되는 함수의 관계를 확인할 수 있는 Blueprint 클래스를 의미 → 라우트 함수를 구조적으로 관리할 수 있다. 01. 블루 프린트 생성하기 __init__...

백엔드 2021.08.04

플라스크 어플리케이션 만들기_초보

01. 새 파이썬 파일 만들기 파이참에서 myproject 디렉터리에 pybo.py 파일을 생성하고 다음과 같이 코드를 작성하자. app = Flask(__name__) : 플라스크 애플리케이션을 생성하는 코드 → __name__이라는 변수에는 모듈명이 담김 → 이 파일이 실행되면 pybo.py라는 모듈이 실행 → __name__변수에는 'pybo'라는 문자열 담김 02. 플라스크 서버 실행하기 flask run 가상환경에서 flask run 명령을 실행해 플라스크 개발 서버를 실행 그런데, 플라스크 애플리케이션을 찾을 수 없다는 오류 메세지가 발생한다. 오류 메세지 : FLASK_APP 환경 변수 설정 → 플라스크 서버를 실행하려면 반드시 FLASK_APP이라는 환경 변수에 플라스크 애플리케이션을 지정..

백엔드 2021.08.01

플라스크 프로젝트 생성하기

01. 프로젝트 루트 디렉터리 생성하기 플라스크 프로젝트는 여러 개가 될 수 있으므로 프로젝트를 모아 둘 프로젝트 루트 디렉터리를 생성해야 한다. 여기서 프로젝트 루트 디렉터리 이름을 projects로 지었다. 02. 프로젝트 루트 디렉터리 안에서 가상 환경에 진입하기 다음 명령어를 입력해 앞에서 만든 myproject 가상 환경에 진입한다. 이때, 반드시 프로젝트 루트 디렉터리에서 명령어를 입력해야 한다. "길어도 꾹 참고 입력!" 03. 플라스크 프로젝트를 담을 디렉터리 생성하고 이동하기 플라스크 프로젝트를 담을 myproject 디렉터리를 생성하고 이동하자 04. 배치 파일로 myproject 가상 환경에 간단히 진입하기 myproject 가상 환경에 진입하려면 매번 명령 프롬프트를 실행하고 C:\..

백엔드 2021.07.30

플라스크 개발 환경 준비하기

본격적으로 플라스크를 이용한 개발 환경을 준비해보자! 아나콘다와 같은 가상환경이 있지만, 내 컴퓨터에 파이썬 가상환경을 만들어보려고 한다. 01. 가상 환경 디렉터리 생성하기 윈도우에서 명령 프롬포트(cmd)를 실행하고 다음 명령어를 입력해 C:\venvs 디렉터리를 생성 venvs 디렉터리는 파이썬 가상 환경의 루트 디렉터리로 사용할 것이다. 02. 가상환경 만들기 파이썬 가상 환경을 만들어 주는 다음 명령어를 입력해 실행 python -m venv myproject python -m venv는 파이썬 모듈 중 venv라는 모듈을 사용한다는 의미이다. 그 뒤의 myproject는 가상 환경 이름이다. (임의로 설정, 변경가능) 03. 가상 환경 진입하기 가상 환경에 진입하려면 우리가 생성한 myproj..

백엔드 2021.07.30

HTTP의 구조 및 핵심 요소

프론트앤드 시스템과 백엔드 API 시스템은 일반적으로 HTTP 프로토콜을 기반으로 통신한다. HTTP HyperText, Transfer Protocol의 약자 웹상에서 서로 다른 서버 간에 하이퍼텍스트 문서, 즉 HTML을 서로 주고 받을 수 있도록 만들어진 프로토콜, 통신 규약 웹상에서 네트워크를 통해 서버 사이에 통신할 때 어떠한 형식으로 서로 통신하자고 규정해놓은 통신 형식, 통신 구조 (서버 간의 통신에서도 서로 이해할 수 있는 공통의 통신 형식 필요 → 프로토콜(protocol)) HTTP 통신 방식 HTTP 통신 방식에는 2가지의 특징이 있다. 1. HTTP 요청(request)과 응답(response) 방식 2. Stateless HTTP 요청과 응답방식 HTTP를 기반으로 통신을 할 때 ..

백엔드 2021.07.28

ping 엔드포인트 구현하기

▶ ping 엔드포인트(endpoint) 구현 엔드포인트 : API 서버가 제공하는 통신 채널 혹은 접점 프론트엔드 서버의 클라이언트가 백엔드 API 서버와 통신할 때 엔드포인트에 접속하는 형태로 통신 각 엔드포인트는 고유의 URL 주소를 가지게 되며, 고유의 URL 주소를 통해 엔드포인트에 접속 각 엔드포인트는 고유의 기능을 담당 → 이러한 엔드포인트들이 모여 하나의 API 구축 ex) SNS 서비스를 위한 API : 사용자 sign up 엔드포인트, 사용자 로그인 엔드포인트, 새로운 포스팅 생성 엔드포인트, 다른 사용자들과 친구 맺기 엔드 포인트 등 여러 엔드포인트로 구성 ping endpoint - "pong"이라는 텍스트를 return하는 endpoint - 아주 간단한 엔드포인트지만 실제 시스템..

백엔드 2021.07.27