FastAPI 개발일지 13

FastAPI 개발일지12-ITEM관리

저번 포스트에는 DB를 연결하여 간단하게 item을 생성했었다.  오늘은 item을 생성하고, 수정하고, 삭제하는 작업을 해보자! 1. item 생성#item/item_router.pydef insert_data(db, table): db.add(table) db.commit() db.refresh(table) @router.post("/create_item", response_model=Create_item)def create_item(item:Create_item, item_db: Session = Depends(get_itemdb)): create_items = Item_model(item_name=item.item_name, ..

FastAPI 개발일지11 - database 연결하기

1. 세팅하기 database를 연결하기 위해서 먼저 models.py와 database.py를 작성할 것이다.  models.py는 database에 만들어질 테이블의 양식을 관리하는 파일이고,database.py는 database의 연결을 도와주는 파일이다. 먼저 anaconda를 킨 후 필요한 것을 설치한다.pip install mysql-connector-pythonconda install sqlalchemy - SQLAlchemy는 Python에서 가장 널리 사용되는 ORM (Object Relational Mapper)이다. conda install python-dotenv - dotenv의 자세한 설명은 아래 링크에서 봐주세요!https://hccode0419.tistory.com/entry..

FastAPI 개발일지10 - 중간 점검

지금까지 fastapi의 기본적인 get, post, put, delete와 APIRouter까지 배웠다. 지금까지 작성한 코드로 한 번 웹사이트와 연결하여 작동이 잘 되는지 확인해 보자.  1. main.pyfrom fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewarefrom item.item_router import router as item_routerapp = FastAPI()origins = ["*"]app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow..

FastAPI 개발일지9 - APIRouter

FastAPI를 통해 개발할 때 APIRouter를 사용하여 router를 관리할 수 있다. 1. Router라우터는 FastAPI의 독럽적인 endpoint를 생성하고 관리하는 역할을 한다. 이를 통해 디렉토리 구조를 명확히 하고, 코드의 재사용성을 높일 수 있다. 이제부터는 본격으로 쇼핑몰 사이트를 개발하기 위해 디렉토리를 구조화하고 코딩을 할 것이다.  2. 디렉토리 구조디렉토리를 다음과 같이 구성한 후 프로젝트 개발을 시작하겠다. └─project-fastapi │ database.py │ main.py │ models.py │ README.md │ ├─history │ history_crud.py │ history_router...

FastAPI 개발일지8 - Path, Query, Request body

FastAPI에서는 parameter를 query와 path로 구분한다.  1. 경로 파라미터(Path parameters)경로 파라미터는 URL의 경로에 "/"를 구분으로 포함되는 파라미터이다.@app.get("/get_item/{item_id}")def get_item(item_id:int): for item in items: if item["item_id"] == item_id: return item return {"error": "Item not found"}- "/"를 기준으로 {}안의 변수가 path parameter가 된다. FastAPI docs에서 보면 실제로 주소가 "/"를 기준으로 나온 것을 확인할 수 있다,    실제로 URL로 접근하면 다..

FastAPI 개발일지7 - get, post, put, delete

FastAPI HTTP 메소드에는 get, post, put, delete가 있다쇼핑몰 상품을 예로 들어보자 item이 다음과 같이 있을 때 해당 아이템들을 보여주고 싶기도 하고, 추가하고 싶기도 하고, 수정 및 삭제도 하고 싶다바로 CRUD를 하고 싶은 것이다. C : CreateR : ReadU : UpdateD : Deleteitems = { 1 : {"item_name":"untoc", "item_price":15000}, 2 : {"item_name":"phone", "item_price":35000}, 3 : {"item_name":"computer", "item_price":24000}, 4 : {"item_name":"pencil", "item_price":1000},..

FastAPI 개발일지6 - FastAPI 시작하기

1. vscode 실행하기1) 먼저 github desktop에서 사용할 repository에 연결한다. 이후 상단바의 Repository > open in Visual Studio Code를 클릭 2) Ctrl + Shift + p -> Python: Select Interpreter 클릭가상환경을 변경하는 작업이다.우리가 만든 fastapi를 선택한다! 2. 디렉토리 구조└─project-fastapi │ database.py │ main.py │ models.py │ README.md │ ├─history │ history_crud.py │ history_router.py │ history_schema.py │ ..

FastAPI 개발일지5 - Database 구축하기

1. Database 쇼핑몰에서의 모든 데이터는 database에 저장할 것이다 우리가 사용할 database는 mysql이다. mysql을 사용하기 위해 mysqlworkbench를 설치해 보자2. MySQL Workbench 설치MySQL Workbench 설치 방법은 아래 포스터를 참고하여 설치해 주세요!https://hccode0419.tistory.com/8 3. ERD 구축하기먼저 쇼핑몰을 개발할 때 어떤 데이터를 저장하고 이용할지 먼저 생각해야 한다.1) ERD : Entity Relation Diagram의 약자로 데이터베이스의 구조를 나타낸다.아래 주소에서 사용할 수 있다. https://dbdiagram.io/home dbdiagram.io - Database Relationship D..

FastAPI 개발일지4 - IA(Information Architecture) 작성하기

1. IA : 정보 구조도기능 명세서 작성을 완료했으니, 이제부터 전체적으로 개발을 진행할 방향성을 잡아보자바로 IA (information architecture)를 그릴 것이다. IA란 간단하게 말하면 서비스의 목차를 표현하는 것이다.  쉽게 말하면 페이지의 흐름을 정리해 놓은 것이다.  IA는 Figma를 통해서 그려보겠다  https://www.figma.com/ Figma: The Collaborative Interface Design ToolFigma is the leading collaborative design tool for building meaningful products. Seamlessly design, prototype, develop, and collect feedback in..

FastAPI 개발일지3 - 기능 명세서 작성하기

1. 기능 명세서 작성하기우리의 프로젝트는 간단한 쇼핑몰을 만드는 것이다 쇼핑몰을 만들기 전에 기능 명세서를 작성해볼 것이다.  기능 명세서란 프로젝트를 시작하기 전에, 구현될 구체적인 기능들을 정리한 것이다.  기능 명세서를 작성하지 않으면, 개발을 진행하면서 계속 기능이 바뀌게 되고 효율적인 개발을 하지 못한다....(실제로 겪어본.... 개발 회의 할 때마다 계속 기능의 요구사항이 바뀌고,,, 팀원들과 소통도 제대로 안 되다보니 처음 기획했던 것과 다르게 기능이 없어지기도 변화되기도 함...) 그래서 기능 명세서는 개발을 시작하기 전에 ! 꼭 작성을 해야한다. 우리는 노션을 통해서 기능 명세서를 작성할 것이다.   이렇게 쇼핑몰 개발을 위한 기능 명세서를 작성하였다.  사실 개발을 진행하면서 기능 ..

반응형