일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- c++
- 파이썬
- 인공지능
- 개발자
- c
- 파이썬 장고
- C언어
- 플라스크
- 에어플로우 기초강의
- 개발언어
- 예제프로젝트
- 웹개발
- 파이썬강의
- 장고 튜토리얼
- 쇼핑몰예제
- 장고 기초 강의
- 개발자취업
- 장고
- Django
- 도커
- ADP
- Python
- 프로그래밍
- 기초강의
- airflow
- 도커 컴포즈
- flask
- cpp
- mlops
- docker
- Today
- Total
TITEDIOS 편한 코딩
Flask로 웹개발: #13 배포 및 테스트 - 로그인 기능 본문
이번 포스팅에서는 Flask 애플리케이션에서 데이터베이스에 더미 데이터를 입력하고, 로컬 환경에서 배포 및 테스트하는 방법을 다루겠습니다. 이전에 우리가 새로운 요구사항을 발견하고 정리(문서화)하고 이후에 레이아웃 작업 후 기능을 구현했던 모든 작업은 이번 포스팅을 위해서였다고 해도 과언이 아닙니다. 이제 시작해 보겠습니다.
1. 데이터베이스에 더미 데이터 입력
애플리케이션을 테스트하기 위해 데이터베이스에 더미 데이터를 입력하는 것이 필요합니다. 이를 위해 app.py에 더미 데이터를 입력하는 코드를 추가하겠습니다. 이전에 제품 정보를 추가하는 코드와 유사한 코드입니다.
add_dummy_data.py 파일을 생성하여 아래의 코드를 작성합니다.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash
from app import FlaskUser
# 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)
class FlaskUser(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(200), nullable=False)
def __repr__(self):
return f'<User {self.username}>'
# Example products
users = [
FlaskUser(username="user@example.com", password=generate_password_hash("password123", method='pbkdf2:sha256')),
FlaskUser(username="a@a.a", password=generate_password_hash("123", method='pbkdf2:sha256')),
]
with app.app_context():
db.create_all()
db.session.add_all(users)
db.session.commit()
이 스크립트를 실행하여 데이터베이스에 더미 데이터를 추가합니다.
python add_dummy_data.py
2. 로컬 환경에서 배포 및 테스트
Flask 애플리케이션을 로컬 환경에서 배포하고 테스트하는 방법을 설명하겠습니다. 우리는 이전에 배포와 테스트를 해본적이 있습니다. 오늘도 유사한 방법을 통해 우리가 만든 웹 페이지가 잘 동작하는지 확인해 보겠습니다.
배포
로컬 환경의 배포는 사실 너무 간단합니다. 아래의 명령을 실행하면 끝입니다.
python app.py
동작 테스트
1) Index 페이지
우선, 가장 첫 화면에 진입합니다. cart 등이 오른쪽으로 정렬된걸 확인할 수 있고 Register 기능이 추가되었습니다.
2) 로그인 화면
DB에 미리 입력해 두었던 사용자 정보를 통해 로그인 해봅니다.
3) 로그인 기능 테스트
저는 a@a.a/123으로 등록해 두었습니다. 여러분은 다른 ID와 PW를 등록했다면 여러분의 ID와 PW를 통해 로그인 해봅니다.
4) 로그인 성공 화면
로그인이 성공했다면 Cart 오른편에 로그인한 사용자 정보가 표시됩니다.
5) 회원 가입 화면
회원 가입화면입니다. ID와 PW 정보만 입력받는 아주 간단한 화면입니다. 실제로 구현한다면 훨~씬 더 복잡하겠지만 아직 그런 복잡한 기능보다 기본적인 개발 과정에 익숙해지는 것이 목적이니까 최소한의 기능과 화면만 구현하였습니다.
6) 회원 가입 후 로그인
회원 가입 후 가입한 정보를 통해 로그인을 한다면 잘 되는 것을 확인할 수 있습니다.
7) 회원 탈퇴
회원 탈퇴를 해보겠습니다. 방금 만든 사용자 정보를 탈퇴할 것입니다. 탈퇴는 오른쪽 상단에 Delete를 눌러 진행합니다. Delete를 클릭하면 아래 화면처럼 정보를 입력할 수 있습니다. 사용자 정보를 입력하면 탈퇴처리가 완료됩니다.
8) 탈퇴 후 로그인 시도
탈퇴 후 로그인 시도를 한다면 사용자 정보가 없기 때문에 Invalid 메시지를 표현합니다.
결론
이 포스팅에서는 Flask 애플리케이션에서 데이터베이스에 더미 데이터를 입력하고, 로컬 환경에서 배포 및 테스트하는 방법을 살펴보았습니다. 이를 통해 애플리케이션을 더 쉽게 테스트하고 디버깅할 수 있습니다. 추가적으로 배포 후 실제 사용자 데이터를 입력하고, 필요한 보안 조치 등을 통해 애플리케이션을 완성해 나갈 수 있습니다. 이로써 여러분은 웹개발 중에 추가적인 요구사항까지 처리하는 방법에 대해 학습하였습니다(짝짝짝).
도움이 되셨다면 공감 부탁드리겠습니다. 여러분의 공감이 정말 큰 힘이 됩니다.
감사합니다!
'Flask 웹 서버 만들기' 카테고리의 다른 글
Flask로 웹개발: #15 시스템 로그 (0) | 2024.08.05 |
---|---|
Flask로 웹개발: #14 API 문서 작성 (0) | 2024.08.02 |
Flask로 웹개발: #12 기능 구현 - 회원 가입, 탈퇴, 로그인, 로그아웃 (0) | 2024.07.31 |
Flask로 웹개발: #11 레이아웃 - 회원 가입/탈퇴 (0) | 2024.07.30 |
Flask로 웹개발: #10 레이아웃 - login.html 작성 (0) | 2024.07.29 |