[DB] amazon Lightsail과 flask 연동 후 DB저장하기

Mincho·2023년 1월 11일
0

DB

목록 보기
1/1
post-thumbnail

1.aws계정을 통해 lightsail DB이용하기🤜

  1. aws계정을 만들어 lightsail에 접속한다.![]


  2. lightsail에서 database를 만들며 mysql로 만든다. 처음 3개월은 무료이므로 걱정할 필요 없다. 만들어지는 시간이 오래걸리는 편이다...


  3. 만들어진 DB에서 네트워킹 탭에 퍼블릭 모드를 활성화해야한다. 활성화하게 되면 기본적인 초기 세팅이 끝난것이다.👏



2.mysql을 이용해 기본 테이블 만들기🤜

  1. db관리는 많이 사용하고 있는 mysql을 이용하였다. mysql실행하고 connection을 설정해야한다. 원하는Connection Name을 설정하고 parameters탭에 hostname에는 lightshell의 엔드포인트username에는 lightshell의 사용자 이름을 입력하고 Test Connection버튼을 클릭한다. 클릭후에 입력하는 비밀번호는 lightshell의 비밀번호다. (lightshell의 초기 비밀번호는 해쉬화 되어있기 때문에 변경해주어야한다.)


  2. 원하는 스키마 db를 만들고 그안에 테이블을 작성한다.(필자는 user) 테이블 만든 후 원하는 필드 값을 넣어주면 데이터를 넣어줄 기본 테이블 만들기를 완료한것이다.👏

3.flask를 이용해 원하는 데이터 테이블에 넣기🤜


from flaskext.mysql import MySQL
from flask import Flask
from flask import jsonify
from flask import request
import random
from random import randrange

app = Flask(__name__)

mysql = MySQL()
app.config["MYSQL_DATABASE_USER"] = ""	#lightsail username
app.config["MYSQL_DATABASE_PASSWORD"] = "" #lightsail password
app.config[
    "MYSQL_DATABASE_HOST"
] = "" #lightsail 엔드포인트
app.config["MYSQL_DATABASE_DB"] = "" #mysql에 만든 DB
mysql.init_app(app)


@app.route("/generate_user")
def userGenerate():  # 유저 랜덤 생성 후 생성된 유저 보여주기
    # 유저생성 코드

    name_list = []
    gender_list = []
    birthday_list = []
    age_list = []
    company_list = []

    for i in range(10):
        last_name = ["김", "미", "박", "황", "이"]
        first_name = ["보", "인", "지", "사", "모", "태", "하", "주", "희", "모", "태", "병", "건"]

        name = (
            str(random.choice(last_name))
            + str(random.choice(first_name))
            + str(random.choice(first_name))
        )
        gender = random.choice(["male", "female"])
        birthday = randrange(600000, 999999, 1)
        age = randrange(1, 100, 1)
        company = random.choice(["samsung", "lg", "hyundai"])
        name_list.append(name)
        gender_list.append(gender)
        birthday_list.append(birthday)
        age_list.append(age)
        company_list.append(company)

    # db 코드
    conn = mysql.connect()
    cursor = conn.cursor()

    for i in range(10):
        cursor.execute(
            f"""
            INSERT INTO 
                user(name, gender, birthday, age, company) 
            VALUES
                ('{name_list[i]}', '{gender_list[i]}', 
                '{birthday_list[i]}', {age_list[i]}, '{company_list[i]}')
            """
        )
        conn.commit()

    cursor.close()
    conn.close()

    return jsonify({"result": "success"})

  1. flask서버에 접속하여 route /generate_user로 접속한다. 위 파일은 무조건 app.py에서 작성되어야 flask가 읽어올 수 있다.


  2. 접속하게 되면 success라는 값을 확인할 수 있다.(값이 DB로 저장되었다는 것) / 다시 mysql을 새로고침하면 데이터가 제대로 들어간 것을 확인할 수 있다.👏



👍올바른 피드백은 언제든지 환영입니다~!

profile
www.mincho130.xyz <-- 블로그 이사했습니당

0개의 댓글