Python/Flask 12

[Day 12] Session을 이용하여 id별로 데이터 저장

이전에 배포한 WMS 구현사이트는 사용자 상관없이 입고, 재고, 출고 테이블을 공통으로 저장하였다. 그래서 이 부분을 해결하고자, Session를 이용하여 사용자 아이디 별로 입고, 재고, 출고 데이터를 저장하는 기능을 구현할려고 한다. 1. 각 테이블마다 user_id 를 추가해준다. 2. app.py를 수정한다. 특히 sql 문에서 로그인한 user_id가 맞는지 비교하기 위해 함수가 쿼리와 파라미터를 받아 SQL 쿼리문에 바인딩할 수 있도록 변경한다.(파라미터 추가)# 데이터 가져오기 함수def fetch_data(query, params=None): connection = create_connection() if connection is None: return [] t..

Python/Flask 2024.07.31

[Day 11] Docker 설치, 사용자 등록 및 사용법

0. What is DockerDocker는 컨테이너 기술을 활용하여 애플리케이션을 격리된 환경에서 실행할 수 있게 해주는 플랫폼입니다. 이 기술은 애플리케이션과 그 종속성을 함께 패키징하여 어디서든 일관되게 실행될 수 있도록 합니다. Docker는 개발자와 운영팀 모두에게 많은 이점을 제공합니다. Docker의 주요 개념과 구성 요소0.1.1 이미지 (Image)Docker 이미지는 애플리케이션과 그 실행 환경을 포함하는 불변의 파일 시스템 스냅샷입니다.이미지는 계층화되어 있으며, 각 계층은 파일 시스템 변경사항을 포함합니다.이미지는 Docker Hub와 같은 레지스트리에서 관리됩니다.0.1.2 컨테이너 (Container)컨테이너는 이미지를 기반으로 생성된 실행 가능한 인스턴스입니다.컨테이너는 격리된..

Python/Flask 2024.07.27

[Day 10] WMS(Warehouse Management System) 구성 및 요구 사항 정의 5

통합시스템회원가입: 사용자 관리를 위해 회원가입 프로세스를 만듭니다.로그인: 관리자와 사용자로 분리해서 접근권한을 갖도록 하고 세션유지를 통해 로그인 중 사용자 정보를 유지시켜 줍니다.1. 회원가입 및 로그인 예제 I전체 사이트에서 회원가입과 로그인의 동작을 이해할 수 있는 간단한 예제 입니다.jinja2를 이용해 반복되는 코드를 통합하고 간단하게 입출력을 구현할 수 있는 방법에 대해 이해 합니다. app.pyfrom flask import Flask, render_template, request, redirect, session, url_forimport mysql.connectorapp = Flask(__name__)app.secret_key = 'sungkyul'# MySQL 연결 설정def get..

Python/Flask 2024.07.27

[Day 9] WMS(Warehouse Management System) 구성 및 요구 사항 정의 4

정보관리(Dashboard)보고서 생성: 재고 현황, 입출고 현황등을 실시간으로 보고서로 생성합니다.통계 및 분석: 데이터를 분석하여 효율적인 창고 운영 전략을 수립합니다. 연습문제 1~2 문제 1 : 다음은 Matplotlib를 이용하여 시각화하는 내용이다 다음의 요구사항에 맞춰 개발을 완료하세요. 또한 입고, 재고, 출고 현황은 하나의 화면에 배치해서 만들고 웹에서 출력할 수 있도록 한다.(app.py와 dashboard.html로 구현)입고 테이블을 읽어서 입고현황 Chart로 만드세요.재고 테이블을 읽어서 재고현황 Chart를 만드세요출고 테이블을 읽어서 출고현황 Chart를 만드세요.app.pyfrom flask import Flask, render_template, url_for, send_f..

Python/Flask 2024.07.25

[Day 8] WMS(Warehouse Management System) 구성 및 요구 사항 정의 3

출고 관리출고 계획: 출고 예정인 상품의 종류, 수량, 출고 날짜 등을 계획합니다.피킹 및 패킹: 출고 상품을 피킹(선별)하여 패킹(포장)합니다.출고 처리: 출고된 상품을 스캔하여 데이터베이스에 기록하고, 운송 준비를 합니다.출고 관리 실습예제 1출고등록다음은 출고승인된 정보에 대해 재고 기록(출고승인 후 자동으로 차감기록)을 하고 조회를 하기 위한 요구사항을 반영하여 화면설계 및 기능 설계를 한 예제입니다.출고승인된 레코드는 재고에서 화주와 상품종류가 같을 경우 재고총량에서 차감되어 저장되고 출고조회화면에서는 출고완료로 출력된다.추가적으로 출고를 위한 픽킹, 동선계획, 패킹등에 대한 정보를 더할 수 있다. 출고 테이블CREATE TABLE outbound_registration ( id INT A..

Python/Flask 2024.07.24

[Day 7] WMS(Warehouse Management System) 구성 및 요구 사항 정의 2

재고 관리재고 기록: 모든 재고의 위치, 수량, 상태 등을 실시간으로 기록하고 관리합니다.재고 이동: 재고의 이동 기록을 추적하여 정확한 위치 정보를 제공합니다.재고 조정: 재고의 손실, 손상, 반품 등의 이유로 인한 재고 조정을 관리합니다. 연습문제 1~2문제 1 : 필터링진행상태가 “입고완료”로 되어 있는 레코드 찾기진행상태가 “입고완료”중 화주와 상품종류가 같은 레코드 찾기위 첫 번째와 두 번째 조건을 만족하는 레코드를 최근 저장된 레코드 부터 출력하기 문제 2 : 재고 저장 관리다음과 같은 재고 테이블을 만드시오 재고 관리 실습예제1. 재고기록 및 조회다음은 입고 완료된 정보에 대해 재고 기록(입고완료 후 자동으로 기록)을 하고 조회를 하기 위한 요구사항(모든 재고의 위치, 수량, 상태 )을 반영..

Python/Flask 2024.07.23

[Day 6] WMS(Warehouse Management System) 구성 및 요구 사항 정의 1

1. WMS 요구사항 정의WMS(Warehouse Management System) 시스템을 접했을 때 물류를 모르는 초급 개발자가 가장 이해하기 쉽게 원리와 기능을 파악하고 연습할 수 있습니다. WMS Web Application을 구현해 봄으로서 물류용 업무프로그램에 대한 실무 역량을 키울 수 있습니다.기능적 요구사항입출고 관리: 상품의 입출고를 효율적으로 관리할 수 있어야 합니다.재고 실시간 추적: 모든 재고의 실시간 상태를 추적하고 관리할 수 있어야 합니다.피킹 최적화: 주문에 맞는 피킹 경로를 최적화하여 작업 효율성을 높여야 합니다.바코드/QR 코드 스캔: 바코드나 QR 코드를 스캔하여 상품의 정보를 정확하게 입력할 수 있어야 합니다.통합 보고서: 다양한 보고서를 생성하여 운영 현황을 한눈에 파..

Python/Flask 2024.07.23

[Day 5] 사용자 인증 시스템 구현

1. 사용자 인증의 기본 개념(SESSION)세션(Session)의 개념웹 애플리케이션에서 세션(Session)은 클라이언트와 서버 간의 상태를 유지하기 위한 메커니즘입니다. 웹은 본래 상태를 유지하지 않는(stateless) 프로토콜인 HTTP를 사용하기 때문에, 세션을 이용해 사용자의 상태를 저장하고 유지할 수 있습니다. 이를 통해 사용자는 웹사이트를 탐색하는 동안 로그인 상태를 유지하거나, 쇼핑 카트의 항목을 유지하는 등의 작업을 할 수 있습니다.세션의 주요 개념세션 식별자(Session ID):   각 클라이언트에게 고유한 세션 ID가 할당됩니다.   이 세션 ID는 클라이언트가 웹 서버에 요청을 보낼 때마다 함께 전송되며, 서버는 이 ID를 사용해 클라이언트의 세션 데이터를 식별하고 접근합니다...

Python/Flask 2024.07.21

[Day 4] Database 완성

1. 데이터베이스 모델 정의데이터베이스 모델 정의는 데이터베이스의 구조를 나타내며, 애플리케이션이 데이터베이스와 상호작용할 수 있도록 하는 역할을 합니다. 모델 정의는데이터베이스 테이블과 필드를 설정하고,각 필드의 데이터 타입 및 제약 조건을 정의합니다.Flask 애플리케이션에서는 주로 ORM(Object Relational Mapping)을 사용하여 데이터베이스 모델을 정의합니다. 이번 예제에서는 Flask와 MySQL Connector를 사용하여 직접 SQL 쿼리를 작성하여 데이터베이스와 상호작용할 것입니다. AWS는 혹시 모를 비용이 발생할 수 있기 때문에 GCP를 사용합니다. GCP에서 VM설치는 이전에 해보았기 때문에 과정은 스킵하겠습니다. VM 설치를 하면 설치 후 1주차 때 했던 Maria ..

Python/Flask 2024.07.18

[Day 3] 템플릿 엔진과 HTML 렌더링

템플릿 엔진과 HTML 렌더링1. 템플릿 엔진의 개념과 역할템플릿 엔진은 웹 애플리케이션에서 HTML 파일을 동적으로 생성하기 위해 사용되는 도구입니다. 템플릿 엔진을 사용하면 고정된 HTML 파일에 동적으로 데이터를 삽입하거나 제어 구조(조건문, 반복문 등)를 적용할 수 있습니다. 이를 통해 웹 페이지를 동적으로 생성하고, 서버에서 데이터와 결합하여 사용자에게 제공할 수 있습니다.역할:HTML 파일과 데이터의 결합: 서버 측에서 데이터를 가져와 HTML에 동적으로 삽입합니다.재사용성: 공통된 레이아웃이나 컴포넌트를 재사용할 수 있습니다.유지 보수성: HTML 코드와 비즈니스 로직을 분리하여 코드를 깔끔하게 유지합니다.2. Flask에서 템플릿 사용법Flask는 Jinja2라는 템플릿 엔진을 기본으로 사..

Python/Flask 2024.07.17