반응형

웹(WEB)/파이썬(Python) 12

[Python] FastAPI Windows 웹 서버 구현

개요FastAPI를 활용한 Windows 환경에서의 웹 서버를 구현해 보자간단한 토이 프로젝트 형식으로 로컬 환경에서 클라이언트, 웹 서버, DB 서버를 구현할 예정이다. [사용 툴]웹 클라이언트 : vue웹 서버 : FastAPIDB 서버 : PostgreSQLFastAPI의 장점인 비동기 처리를 구현하는게 목적이다.또한 트랜잭션 처리에서 ACID를 정확하게 지키는 것 또한 구현하고자 한다. vue와 관련된 내용은 이전 Flask 프로젝트를 진행하며 사용했던 그대로 사용할 예정이다.따라서 vue관련 내용은 다루지 않을 것이며 HTTP 요청 시 URL에서 포트번호만 변경해 주면 된다. [Python] Flask 클라이언트 GET 요청 처리 [Python] Flask 클라이언트 GET 요청 처리개요이번엔 ..

[Python] FastAPI 기본, 설치

개요FastAPI는 웹 서버로 사용하기에 매우 알맞은 프레임워크이다.특히 비동기 처리와 높은 성능을 제공하여, 고속의 웹 애플리케이션 및 API를 구축하는 데 적합하다. 그러나 비동기 작업을 사용할 때는 특정 고려 사항이 필요하다.특히 트랜잭션 처리와 관련하여 오류가 발생할 수 있는 가능성이 있다. FastAPI는 ASGI 기반으로 동작하는 프레임워크로, uvicorn 같은 고성능 ASGI 서버에서 실행된다.특히 REST API와 같은 I/O 바운드 작업을 처리할 때 매우 뛰어난 성능을 발휘한다.비동기 I/O는 서버가 여러 요청을 동시에 처리할 수 있게 해주어, 대규모 트래픽을 처리하는 데 효과적이다.  장점async/await를 사용하여 데이터베이스, HTTP 요청 등 I/O 바운드 작업에서 비동기 I..

[Python] Flask 리눅스 서버 구동(4) 클라이언트 설정

개요[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성 [Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성개요리눅스 환경에서 웹 서버를 구현하기 위해 AWS를 사용해 보자AWS EC2 프리 티어 인스턴스를 생성하여 무료로 퍼블릭 IP를 부여받을 수 있다. 만약 AWS 아이디가 없다면 생성해 준다.생성 후 AWSzzzz955.tistory.com[Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현 [Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현개요[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성 [Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성개요리눅스 환경에..

[Python] Flask 리눅스 서버 구동(3) 데이터베이스 설정

개요[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성 [Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성개요리눅스 환경에서 웹 서버를 구현하기 위해 AWS를 사용해 보자AWS EC2 프리 티어 인스턴스를 생성하여 무료로 퍼블릭 IP를 부여받을 수 있다. 만약 AWS 아이디가 없다면 생성해 준다.생성 후 AWSzzzz955.tistory.com[Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현 [Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현개요[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성 [Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성개요리눅스 환경에..

[Python] Flask 리눅스 서버 구동(2) 웹 서버 환경 구현

개요[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성 [Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성개요리눅스 환경에서 웹 서버를 구현하기 위해 AWS를 사용해 보자AWS EC2 프리 티어 인스턴스를 생성하여 무료로 퍼블릭 IP를 부여받을 수 있다. 만약 AWS 아이디가 없다면 생성해 준다.생성 후 AWSzzzz955.tistory.com 위 게시글에서 AWS에서 가상화 인스턴스를 생성하여 우분투 환경 원격 접속까지 진행하였다.이제 리눅스 환경에서 서버 구동을 위한 최소한의 패키지를 설치해 보자  Flask 서버 설치1. Python 및 필수 패키지 설치sudo apt updatesudo apt install python3-pip python3-..

[Python] Flask 리눅스 서버 구동(1) AWS EC2 인스턴스 생성

개요리눅스 환경에서 웹 서버를 구현하기 위해 AWS를 사용해 보자AWS EC2 프리 티어 인스턴스를 생성하여 무료로 퍼블릭 IP를 부여받을 수 있다. 만약 AWS 아이디가 없다면 생성해 준다.생성 후 AWS콘솔로 이동해 준다.https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2# https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2 ap-northeast-2.console.aws.amazon.com 이후 EC2로 이동해 준다.  인스턴스 생성EC2로 이동하였다면 대시보드가 보일것이다.해당 화면에서 인스턴스 시작 버튼을 클릭하..

[Python] Flask 클라이언트 PUT, DELETE 요청 처리

개요이번엔 이미 존재하는 아이템 정보를 수정하는 작업을 진행해 본다.아이템 정보 수정을 진행하는 로직은 다음과 같다.웹 클라이언트에서 모든 아이템 정보 불러오기특정 아이템을 선택input에 존재하는 이름과 설명 정보 수정수정 완료 버튼을 클릭하여 수정 요청 진행웹 서버에서 수정 요청 정보 수락데이터 검증 후 DB 서버에 수정 요청 진행트랜잭션 처리 후 결과 DB서버에 전송DB커밋 후 결과 웹 클라이언트에 전송전송 결과 사용자에게 노출아이템 수정 요청엔 모든 정보를 수정하는 PUT과 일부 정보를 수정하는 PATCH가 있다.보통은 PUT을 통해 모든 정보를 수정한다. (사실 모든 요청을 GET으로 퉁쳐버리는 경우도 있다.) 아이템 정보를 삭제하는 로직은 비교적 간단하다.웹 클라이언트에서 모든 아이템 정보 불..

[Python] Flask 클라이언트 POST 요청 처리

개요POST요청 즉, CRUD에서의 C에 해당하는 클라이언트의 요청을 Flask에서 처리해보자클라이언트에서 웹 서버의 엔드포인트의 특정 URL로 POST요청을 보낸다.그럼 Flask에서 해당 요청을 라우트로 받아 메서드를 할당한다.해당 메서드 내에서 DB와 통신하여 작업을 처리하고, 성공 여부를 리턴한다.  CreateItem.vue우선 vue.js의 아이템 추가 관련 컴포넌트를 생성한다.해당 컴포넌트에서는 추가할 아이템의 이름과 설명을 작성할 input을 준비한다.또한 button을 통해 createItem 메서드를 연결하여 해당 버튼 클릭 시 input을 통해 아이템을 추가할 수 있도록 한다. 아이템 추가 아이템 추가  실제로 아이템이 추가되는 로직은 createItem..

[Python] Flask 클라이언트 GET 요청 처리

개요이번엔 클라이언트로 부터 요청을 플라스크에 전달하고, 요청 내용을 토대로 클라이언트에 값을 반환해 보자진행 순서는 다음과 같다.웹 클라이언트에서 Flask로 요청을 전달요청을 라우트에 따라 구분하여 Flask 내부에서 메서드 할당메서드 내부에서 db테이블을 참조해 요청에 맞는 쿼리문을 통해 데이터 파싱관련 데이터를 json형식을 통해 리턴클라이언트에서 데이터를 획득따라서 우선 웹 클라이언트 로직을 작성 후 Flask서버에 관련 요청을 보내야 한다.  App.vue Items {{ item.name }} - {{ item.description }}  간단한 GET관련 로직이다.해당 로직을 설치하기 위해선 vue가 설치되어 있어야 한다.추가로, node.js, npm이 ..

[Python] Flask DB 연동

개요플라스크를 사용해 DB와 연동을 진행해 보자로컬 환경에서 테스트 용도로 실습할 것이기 때문에 DB는 MySQL을 선택하였다.Flask-SQLAlchemy와 PyMySQL을 사용해 MySQL에 연결하는 방식이다. MySQL 설치 관련 내용은 하기 게시글을 참고MySQL 설치 MySQL 설치MySQL CommunityMySQL 사용을 위해 설치해 보자 https://downloads.mysql.com/archives/installer/ MySQL :: Download MySQL Installer (Archived Versions)Please note that these are old versions. New releases will have recent bug fixes and features! Tozz..

728x90
반응형