개발로 자기계발
728x90
SMALL
article thumbnail
FastAPI Put Request를 통한 DB 업데이트 - 40
Develop/FastAPI 2023. 1. 4. 17:42

PUT을 통해서 데이터베이스에 데이터를 업데이트해보는 것이 목표 1. 데이터를 업데이트하기 위한 PUT 함수 생성 @app.put("/{todo_id}") async def update_todo(todo_id: int, todo: Todo, db: Session = Depends(get_db)): todo_model = db.query(models.Todos).filter(models.Todos.id == todo_id).first() if todo_model is None: raise http_exception() todo_model.title = todo.title todo_model.description = todo.description todo_model.priority = todo.priorit..

article thumbnail
FastAPI Post Request를 통한 DB 저장 - 39
Develop/FastAPI 2023. 1. 4. 14:40

POST를 통해서 데이터베이스에 데이터를 저장해보는 것이 목표 1. DB에 만들 Table(32페이지 참고)의 유효성 검사를 하기 위한 BaseModel 생성 from pydantic import BaseModel, Field from typing import Optional class Todo(BaseModel): title: str description: Optional[str] priority: int = Field(gt=0, lt=6, description="The priority must be between 1-5") complete: bool 2. 데이터를 생성하기 위한 POST 함수 생성 @app.post("/") async def create_todo(todo: Todo, db: Sessi..

article thumbnail
FastAPI sqlalchemy filter 사용하기(select) - 38
Develop/FastAPI 2023. 1. 1. 13:21

filter구문을 통해 원하는 id값의 데이터를 조회해보는 게 목표 1. 특정 id를 조회하는 함수 생성 @app.get("/todo/{todo_id}") async def read_todo(todo_id: int, db: Session = Depends(get_db)): todo_model = db.query(models.Todos).filter(models.Todos.id == todo_id).first() if todo_model is not None: #값이 있다면 return해라 return todo_model raise http_exception() def http_exception(): return HTTPException(status_code=404, detail="Todo not foun..

HTTP / HTTPS 대한 기본 정리
Develop/기초지식 2022. 12. 31. 16:02

1. HTTP(HyperText Transfer Protocol): 웹 서버와 클라이언트가 리소스를 교환하기 위해 사용하는 프로토콜. 클라이언트가 요청하면, 서버가 응답하는 방식. 프로토콜(Protocol): 규격화된 상호작용에 적용되는 약속 2. HTTP 메시지: HTTP 서버와 클라이언트가 교환하는 데이터. 헤드와 바디로 구성되며, 각 줄은 CRLF로 구분됨. 헤드: 메시지에 대한 정보. 헤드의 끝에는 CRLF가 한 줄 있음. CRLF(Carriage Return / Line Feed)를 의미하며 키보드의 엔터키와 동일한 기능("개행", "줄 바꿈") 바디: 클라이언트가 서버에게, 또는 서버가 클라이언트에게 전달할 데이터 3. HTTP 요청(Request): 클라이언트가 서버에게 특정 동작을 요청하는..

article thumbnail
FastAPI SessionLocal을 통한 테이블 읽기 - 37
Develop/FastAPI 2022. 12. 31. 15:00

SessionLocal을 이용해서 사전에 만들었던 todos 테이블을 읽어오는것이 목표 1. SessionLocal을 Import 한다.(31페이지 참고) from database import engine, SessionLocal 2. db connection 객체 만들기 def get_db(): try: db = SessionLocal() yield db finally: db.close() SessionLocal은 callable한 객체로 호출될 때마다 새로운 세션 객체들을 생성 callable이란? 호출가능한 클래스 인스턴스, 함수, 메서드 등 객체를 의미한다. get_db는 호출될 때마다 db라는 변수를 생성 생성된 변수 db는 데이터베이스 세션으로 작동하며 한 번의 db 연결동안 존재하며 db ..

article thumbnail
FastAPI SQLite3 Setting Up Todos - 36
Develop/FastAPI 2022. 12. 30. 23:48

터미널로 sqllite3 데이터베이스를 조작하는 것이 목표 파이썬 사용 툴: Pycharm / 운영체제: Mac 1. pycharm 터미널에서 데이터베이스 접속하기 해당 값을 입력 sqlite3 todos.db 2. 데이터베이스 내의 테이블을 확인 sqlite> .schema 3. 테이블에 데이터를 삽입해 보기 sqlite> insert into todos (title, description, priority, complete) values ('Go to the store', 'Pick up eggs', 5, False); sqlite> insert into todos (title, description, priority, complete) values ('Cut the lawn', 'Grass is g..

article thumbnail
FastAPI SQL Queries Introduction - 35
Develop/FastAPI 2022. 12. 30. 23:23

sql 쿼리 구문에 대한 간략한 소개 32번 페이지에서 만든 테이블로 조작 1. select #todos의 테이블 전체 열과 행을 조회한다. SELECT * FROME todos; #todos의 특정컬럼을 조회한다. #컬럼을 적은 순서대로 컬럼이 조회되서 나온다. SELECT title FROM todos; SELECT description FROM todos; SELECT title, description FROM todos; SELECT title, description, priority FROM todos; #todos의 특정값에 해당하는 데이터를 조회한다. #priority열의 값이 5인 행만 조회한다. #title열의 값이 Feed dog인 행만 조회한다. #id열의 값이 2인 행만 조회한다. ..

article thumbnail
FastAPI Installation of SQLite3 Terminal (Mac) - 34
Develop/FastAPI 2022. 12. 30. 22:54

맥 환경에서 SQLite3 터미널 설치가 목표 1. 구글에서 homebrew 검색 후 홈페이지 접속 https://brew.sh/index_ko 2. homebrew 설치하기를 복사 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 3. 터미널을 열고 복사한 값을 입력 4. 비밀번호 입력창에 컴퓨터 비밀번호를 입력 후 RETURN 글 나오면 엔터 5. 설치가 끝나면 터미널을 닫고 다시 터미널을 재실행 6. brew list를 터미널에 입력하고 sqlite가 있는지 확인 만약 sqlite가 없다면? # 터미널 창에서 해당 문장 입력 brew install sqlite 7. 터미널에 sq..

article thumbnail
FastAPI Installation of SQLite3 Terminal (Windows) - 34
Develop/FastAPI 2022. 12. 30. 22:45

윈도우 환경에서 SQLite3 터미널 설치가 목표 1. 구글에서 sqlite 검색 후 홈페이지 접속 https://www.sqlite.org/index.html 2. Lastest Release 항목의 다운로드를 클릭 3. 3번째 항목을 클릭(전체의 번들을 제공) 4. 다운 후 압축을 풀고 해당 폴더의 이름을 sqlite3로 변경 5. 폴더를 C드라이브로 옮긴다. 폴더의 경로는 => C:\sqlite3 6. 시스템 속성의 환경 변수를 연다. 검색(시스템 환경 변수 편집) -> 시스템 속성 -> 고급 탭 -> 환경 변수 7. 경로를 수정한다. 시스템 변수 항목 -> Path 더블클릭 -> New 클릭 -> C:\sqlite3 붙혀넣기 후 OK 누르기 8. 명령프롬프트 열어서 sqlite3 입력 경로가 C\..

article thumbnail
FastAPI Create Database Connection for API(Sqlite) - 33
Develop/FastAPI 2022. 12. 30. 12:52

API를 만들어서 연결하는 함수 구현해보기 1. .py파일 생성 todoapp폴더 하위에 새로운 main.py를 생성한다.(31번, 32번 페이지 참조) 2. todoapp폴더 하위에 database.py의 Base와 models.py를 import 한다. import models from database import engine # models.py를 import 한다. # database.py에서 Base 변수를 import 한다. 3. engine을 통해 데이터베이스와 연결하고 데이터베이스에 선언한 테이블을 생성한다 models.Base.metadata.create_all(bind=engine) 메타데이터는 데이터를 기술하는 데이터를 설명하며, 메타데이터는 구성된 테이블, 열, 제약 조건 및 기타 ..

728x90
SMALL