01.Flask 기초 - 간단 DB 사용법

ID짱재·2021년 4월 27일
0

Flask

목록 보기
7/8
post-thumbnail

🌈 MySQL 연동하기

🔥 flask와 MySQL

🔥 MySQL 기본 문법

🔥 flask와 MongoDB

🔥 MongoDB 기본 문법


1. flask와 MySQL

  • 규격화되고 안정성이 필요한 데이터는 MySQL 이 더 적합
  • 단, 새로운 컬럼이 생기면 MySQL 테이블 자체를 수정해야하는 불편이 있음
  • 자주 변하는 스키마인 경우 MySQL 보다 MongoDB를 추천
  • MySQL 설치 방법 : 터미널 > 🔍 brew install mysql
  • MySQL 접속 : 터미널 > 🔍 cd /usr/local/mysql/bin ⇢ ./mysql -u root -p ⇢ 비밀번호 입력
  • User 생성 : 터미널 > 🔍 CREATE USER 'jewon119'@'localhost' IDENTIFIED BY '비밀번호';
  • 권한부여 : 터미널 > 🔍 GRANT ALL PRIVILEGES ON . TO 'jewon119'@'localhost';
  • 저장 : 터미널 > 🔍 flush privileges;
  • DB 생성 : 터미널 > 🔍 CREATE DATABASE [데이터베이스 이름];
  • DB 생성 확인 : 터미널 > 🔍 SHOW DATABASES;

2. pymsql 기본 문법

  • pymysql로 MySQL 연결
import pymysql
db_conn = pymysql.connect(
    host='localhost',
    port=3306,
    user='jewon119',
    passwd='내 비밀번호',
    db='blog_db',
    charset='utf8'
)
  • 테이블 생성
import pymysql
# DB연결
db_conn = pymysql.connect(
    host='localhost',
    port=3306,
    user='jewon119',
    passwd='내 비밀번호',
    db='blog_db',
    charset='utf8'
)
# DB 커서 생성 및 TABLE 조회
db  = db_conn.cursor()
sql = 'SHOW TABLES;'
db.execute(sql)
# TABLE 생성 및 commit
sql = """
CREATE TABLE user_info(
    USER_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    USER_EMAIL VARCHAR(100) NOT NULL,
    BLOG_ID CHAR(4),
    PRIMARY KEY(USER_ID)
);
"""
db.execute(sql)
db_conn.commit()
  • 테이블 삭제
sql = 'DROP TABLE user_info;'
db.execute(sql)
db_conn.commit() # 데이터베이스를 변경하는 명령은 commit() 해주기
  • 데이터 삽입
# 데이터 생성(삽입)
user_email = 'test@test.com'
blog_id = 'A'
sql = "INSERT INTO user_info (USER_EMAIL, BLOG_ID) VALUES ('%s', '%s')" % (str(user_email), str(blog_id))
db.execute(sql)
db_conn.commit()
  • 데이터 조회
# 데이터 조회
sql = "SELECT * FROM user_info"
db.execute(sql)
results = db.fetchall()
for result in results:
    print(result, type(result)) # (1, 'test@test.com', 'A') <class 'tuple'>
  • DB 연결 해제 : 🔍 db_conn.close()

3. flask와 MongoDB

  • 크롤링 데이터와 같이 방대한 데이터나, 컬럼 유형을 규격화하기 어려운 경우 사용하기 좋음
  • MongoDB 설치 방법 : 터미널 > 🔍 brew install mongodb-community
  • MongoDB 접속 : 터미널 > 🔍 brew services start mongodb-community

4. pymongo 기본 문법

  • DB 및 Table 연결
  • connection이 잘 잡혀있지 않아 오류가 발생하면 아래 2개로 해결 시도
    • 🔍 connection.admin.command('ismaster')
    • 🔍 connection.server_info() 👈 위에 명령 시도해도 해결안될 때 체크
import pymongo
username = ''
password = ''
ip_address = 'localhost'
connection = pymongo.MongoClient()
connection = pymongo.MongoClient('mongodb://%s' % (ip_address))
blog_session_db = connection.blog_session_db # DB연결(없으면 생성) 후 객체로 가져옴
blog_ab = blog_session_db.blog_ab # Table연결(없으면 생성) 후 객체로 가져옴
  • 데이터 삽입 및 조회
# INSERT(1개)
blog_ab.insert_one({'email':'def@def.com'})
# SELECT(1개)
blog_ab.find_one({'email':'def@def.com'})
# SELECT(모두)
results = blog_ab.find()
for result in results:
	print(result)
profile
Keep Going, Keep Coding!

0개의 댓글