TITEDIOS 편한 코딩

Flask로 웹개발: #6 DB - 제품 정보 입력 본문

Flask 웹 서버 만들기

Flask로 웹개발: #6 DB - 제품 정보 입력

TitediosKW 2024. 7. 23. 19:00
반응형


안녕하세요! 이번 포스팅에서는 데이터베이스를 설정하고 제품 정보를 입력하는 방법에 대해 설명드리겠습니다. 이 포스팅에서는 SQLite를 사용하여 데이터베이스를 설정하고 SQLAlchemy를 통해 데이터를 관리하는 방법을 다루겠습니다. SQLAlchemy를 설치하고 이를 통해서 데이터를 SQLite 데이터베이스에 입력하는 방법에 대해 설명할 것입니다.

1 .SQLAlchemy 및 데이터베이스 설정

우선 필요한 패키지를 설치해야 합니다. 터미널에서 다음 명령어를 실행하세요. anaconda 가상환경에서 SQLAlchemy를 설치하는 명령어입니다.

conda install conda-forge::flask-sqlalchemy

2. SQLAlchemy 설정

app.py 파일에서 Flask와 SQLAlchemy를 설정합니다. Flask에서 실행하는 app.py에 처음으로 저희 코드를 작성해 보는 것 같습니다. 좀 두근두근 하지 않으신가요? ㅎㅎㅎ

from flask import Flask, render_template, request, redirect, url_for, session
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.secret_key = 'flasksecretkey' # app의 비밀키로 여러분이 임의로 설정하셔도 됩니다.
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///products.db' # SQLAlchemy 설정
db = SQLAlchemy(app) # 데이터베이스 연결

"""
우리의 제품은 이름, 가격, 상세 정보로 구성된 간단한 형식을 가지고 있습니다.
이 형식에 맞게 데이터베이스를 구성하고 정보를 불러오기 위해 app에서 model을 정의합니다.
물론 다른 파일로 작성하고 import 하는 방법도 있습니다.
"""
# 모델을 정의하기 위해 models.py를 가져옵니다.
from models import Product

class Product(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)
    price = db.Column(db.Float, nullable=False)
    description = db.Column(db.String(200), nullable=False)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)

3. 데이터베이스에 제품 정보 입력

그럼 이제 실제로 우리가 쇼핑몰에서 판매하려는 제품의 정보를 데이터베이스에 입력해 보도록 하겠습니다. 앞서 생성한 create-product.py 파일을 작성하여 데이터베이스에 제품 정보를 입력합니다.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from app import Product

# create the extension
db = SQLAlchemy()
# create the app
app = Flask(__name__)
# configure the SQLite database, relative to the app instance folder
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///products.db"
# initialize the app with the extension
db.init_app(app)


# Example products
products = [
    Product(name='Product 1', price=10.0, description='Description for product 1'),
    Product(name='Product 2', price=20.0, description='Description for product 2'),
    Product(name='Product 3', price=30.0, description='Description for product 3')
]

with app.app_context():
    db.create_all()
    db.session.add_all(products)
    db.session.commit()


여기에서는 'Product 1', 'Product 2' 그리고 'Product 3' 총 3가지의 제품을 데이터베이스에 입력하는 코드를 작성하였습니다. 이제 create-python을 실행시켜 데이터베이스에 제품 정보를 입력하시면 됩니다.

python create-python.py


이후 파일 구조에서 아래 파일 구조가 확인된다면 데이터베이스가 잘 생성된 것입니다.

flask_ecommerce
├── ...
├── instance
│   ├── products.db
├── ...

결론

이번 포스팅에서는 데이터베이스에 기본적인 제품 정보를 입력하는 방법에 대해 알아보았습니다. 오늘 입력한 제품 정보를 기반으로 다음 포스팅에서 개발하게 될 실제 쇼핑몰 페이지에 제품 정보를 출력할 것입니다. 지금은 3 가지의 제품 정보가 입력되어 있지만 여러분이 추가적으로 여러분의 제품을 추가해 보는 것도 프로그래밍의 재미가 될 것입니다.

감사합니다.

반응형