SQLAlchemy Introduction

rang-dev·2020년 3월 17일
0

Introduction

SQLAlchemy

SQLAlchemy is a particular Python library that's extreamly popular for interacting with databases and developing database back web applications with.

  • Python SQL Toolkit
    • SQL의 작성 없이 관계형 데이터베이스들과 작업할 수 있는 End-to-end tools
  • ORM(Object Relational Mapping library)이라고 하는 라이브러리의 한 타입을 제공
    • 테이블들과 칼럼들을 클래스의 객체와 에트리뷰트들에 맵핑함
    • ORM으로 데이터베이스와 상호작용하면 테이블들과 칼럼들로 작업할 필요가 없고 클래스와 애트리뷰트에 직접 작업하므로 객체지향적 프로그래밍 지식이 요구됨

Create a todo table

In SQL

CREATE TABLE todos(
   id INTEGER PRIMARY KEY,
   description VACHAR NOT NULL,
   completed BOOLEAN NOT NULL DEFAULT false
);

In SQLAlchemy ORM

class Todo(db.Model):
  id = db.Column(db.Integer, primary_key=True)
  description = db.Column(db.String(), nullable = Flase)
  completed = db.Column(db.Boolean, nullable=False, default = False)

Example

Todo.query.all() == SELECT * from todos

  • Class Todo는 Object인 query가 있고 이 query는 all이라는 메소드를 제공한다.
  • SELECT * from todos와 동일한 결과
  • 사용자가 어떤 db를 사용하든지에 관계없이 결과값을 가져옴

모든 데이터베이스는 SQL 작성법이 조금씩은 다르다. 하지만 SQLAlchemy ORM을 사용하면 어떠한 데이터베이스를 사용하고 있는지에 대한 생각은 하지 않아도 된다.


왜 raw SQL 대신 SQLAlchemy를 이용하려고 하는가?

  • 파이썬에 모두 사용가능하므로 더이상 SQL을 작성하지 않아도 된다.
  • SQL 문법에서 에러가 발생하는 것을 막는다 --> 더 빠른 웹 개발 가능
  • 우리가 어떤 데이터베이스를 사용하고 있는지 굳이 기억하지 않아도 된다.
    • Switch between SQLite for development, and Postgres for production
profile
지금 있는 곳에서, 내가 가진 것으로, 할 수 있는 일을 하기 🐢

0개의 댓글