아래 링크를 참조하여 MariaDB를 설치해주고, 기본적인 세팅을 진행해줍니다.
https://growingsaja.tistory.com/250
기본적인 내용이 세팅되어있다고 가정합니다. 안되있을 경우 위 링크에서 안내해주는 세팅 글로 이동해 진행 후 Flask 실습을 해주세요.
1. 사용자 정보 테이블 만들기
mysql -u root -p
CREATE TABLE test.User (
id int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY COMMENT '교유값',
username VARCHAR(64) UNIQUE KEY COMMENT '사용자명',
email VARCHAR(120) UNIQUE KEY COMMENT '사용자이메일',
password_hash VARCHAR(120) COMMENT '비밀번호 해시값',
INDEX idx_username (username),
INDEX idx_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '기본 사용자 정보 테이블';
2. 해당 테이블 접속 전용 계정 생성 및 권한 부여
>>> GRANT ALL PRIVILEGS ON test.* TO testuser@localhost IDENTIFIED BY 'password_for_testuser';
>>> FLUSH PRIVILEGES;
3. 게시글 테이블 만들기
>>> CREATE TABLE test.Post (
id int UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '교유값',
body VARCHAR(140) COMMENT '내용',
timestamp TIMESTAMP DEFAULT NOW() COMMENT '등록일시',
user_idx int COMMENT '사용자index값'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT '게시글';
4. 유저 생성, 글 생성
>>> INSERT INTO test.User (username, email) VALUES ('Susan', 'susan@example.com');
>>> INSERT INTO test.Post (body, user_idx) VALUES ('This is forst post of Susan!', '1');
5. 아래 링크를 통해 각종 기능 추가를 위한 사전 준비 진행
https://growingsaja.tistory.com/274
6. mysql의 DB와 app.db를 동기화시키는 프로그램을 추가로 개발해 탑재해주는 형태로 진행해도 무방하다.
Flask에서 지원되는 각종 기능들을 사용하기에는 mysql보다 Flask-SQLAlchemy를 활용하는 것을 추천한다. (로그인/로그아웃 기능에 대한 부분들 때문에)
7. pymysql을 설치하고 활용해 개발 진행
$ pip install pymysql
아래 참고 링크를 확인 후 응용해 개발 가능하다.
https://growingsaja.tistory.com/15