Python 7

엔드포인트 데이터베이스 사용하여 구현하기

회원가입 엔드 포인트 먼저 회원가입 엔드포인트를 데이터베이스를 사용해서 구현해 보도록 하자. 기본적인 구조는 5장에서 구현했던 것과 동일하다. 다만 데이터를 하드코드하거나 메모리상에 저장하지 않고 데이터베이스에 저장한다. new_user_id = app.database.execute(text(""" HTTP 요청을 통해 전달받은 회원가입 정보를 데이터베이스에 저장한다. app.database는 SQLAlchemy를 통해 MySQL 데이터베이스에 연결된 Engine 객체다. app.database를 통해 원하는 SQL구문을 해당 데이터베이스에 실행하게 된다. 이 경우에는 새로운 사용자 정보를 저장하는 것이므로 INSERT 구문을 통해 새로운 사용자 정보를 users 테이블에 저장하도록 한다. """), n..

백엔드 2021.08.17

SQLAlchemy

SQLAlchemy 파이썬 코드에서 DB와 연결하기 위해서 사용할 수 있는 다양한 라이브러리가 있는 데, 그중 SQLAlchemy라는 라이브러리가 파이썬에서 가장 널리 쓰이는 라이브러리 중 하나다. SQLAlchemy 라이브러리를 사용하여 파이썬 코드에서 데이터베이스에 연결하여 SQL을 실행시킬 수 있다. SQLAlchemy는 ORM(Object Relational Mapper)이다. ORM이란, 간략하게 설명하자면 관계형 데이터베이스의 테이블들을 프로그래밍 언어의 클래스로 표현할 수 있게 해주는 것을 말한다. 즉 클래스를 사용해서 테이블들을 표현하고 데이터를 저장, 읽기, 업데이트 등을 할 수 있게 해 준다. 하지만 이 책에서는 ORM 부분은 사용하지 않고 CORE 부분만을 사용할 것이며, 데이터베이스..

백엔드 2021.08.17

API에 데이터베이스 연결하기

API에 데이터베이스 연결하기 이제 본격적으로 API에 MySQL 데이터베이스 시스템을 연결하여 데이터를 저장하도록 하자. 앞서 이야기했듯이 관계형 데이터베이스 시스템은 데이터를 저장하기 전에 미리 테이블 구조와 관계를 구현해 놓아야 한다. 그러므로 먼저 미니터 API를 위한 테이블 구조와 관계, 즉 스키마(schema)를 구현하도록 하자. 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다. 미니터 API의 데이터베이스 스키마는 다음과 같을 것이다. user 테이블..

백엔드 2021.08.16

데이터베이스(Database)

API는 새로 재시작될 때마다 모든 데이터가 없어진다. 즉, 휘발성 메모리(volatile memory)이다. 데이터를 영구적으로 보존하기 위해서는 데이터베이스 시스템을 사용해서 저장해야 한다. 데이터베이스 시스템 데이터베이스 시스템: 데이터를 저장 및 보존하는 시스템 데이터베이스에 저장되어 있는 데이터를 읽어 들일 수 있음 새로운 데이터 저장 기존의 데이터 업데이트 데이터베이스 시스템에는 크게 2가지 종류가 있다. 관계형 데이터베이스 시스템(RDBMS, Relational Database Management System) 비관계형 데이터베이스 시스템(NoSQL, Not only SQL Database Management System) 관계형 데이터베이스 관계형 데이터베이스 : 관계형 데이터 모델에 기초..

백엔드 2021.08.10

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

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

Python : Flask 시작하기

Flask란? 2004년 오스트리아의 오픈소스 개발자 아르민 로나허가 만든 파이썬 웹프레임워크 이때 프레임워크란 특정 시스템을 구현하기 위해서 공통적으로 요구되는 기능들과 구조를 재사용이 가능하도록 구현해 놓은 것 (프로그래밍할 규칙이 정해져 있음) 플라스크를 이용하면 파일 하나로 구성된 짧은 코드만으로도 완벽하게 동작하는 웹 프로그램을 만들 수 있음 - Flask의 홈페이지 : http://flask.pocoo.org/ 플라스크엔 form, database를 처리하는 기능이 없음 확장 모듈을 사용하여 보완해야 함 플라스크를 사용한 API 개발 1. 파이썬 가상 환경 생성 conda create --name api python=3.7 가상환경의 이름을 api라고 지었지만, 이름은 원하는 대로 각자 알아서..

백엔드 2021.07.20