목록개발 도서 (87)
진취적 삶
인증을 거치치 않은 사용자도 이벤트 플래너 애플리케이션을 사용해서 이벤트를 생성할수 있는 문제 인증: 개체가 전달한 인증 정보를 검증하는 것 허가: 객체가 특정 처리를 할수 있도록 권한을 주는 것 7.1 FastAPI 의 인증 방식 기본 HTTP 인증 사용자 인증 정보를 Authorization HTTP 헤더를 사용해 전송하는 방식 쿠키 데이터를 클라이언트 측에 저장할때 사용 FastAPI 애플리케이션도 쿠키를 사용해서 사용자 정보를 저장할수 있으며 서버는 이 정보를 추출해 인증 처리에 사용한다. bearer 토큰 인증 보안 토큰을 사용해 인증하는 방식 . 가장 많이 사용되는 토큰은 JWT 사용자 ID와 토큰 만료 기간으로 구성된 딕셔너리 형식이 일반적 의존성 주입 객체가 실행에 필요한 인스턴스 변수를 ..
6.1 SQLModel 설정 세션 코드와 데이터베이스 사이에서 이루어지는 처리를 관리하며 주로 특정 처리를 데이터베이스에 적용하기 위해 사용된다. session 클래스는 sql 엔진의 인스턴스를 인수로 사용한다. session 클래스의 메서드 add() :처리 대기 중인 데이터베이스 객체를 메모리에 추가한다. commit() :현재 세션에 있는 트랜잭션을 모두 정리한다. get() : 데이터베이스에서 단일 로우를 추출한다. 모델과 문서 ID를 인수로 사용한다 . 6.2 데이터베이스 생성 create_engine() 메서드는 데이터베이스 URL 을 인수로 사용한다. database_file ="database_db" engine = create_engine(database_file,echo=True) SQ..
애플리케이션 구조와 기능이 복잡해지면 애플리케이션을 적절하게 구조화 해야한다. 애플리케이션 라우트와 모델 구조화 플래너 API용 모델 구현 5.1 FastAPI 애플리케이션 구조화 routes 폴더 events.py : 이벤트 생성 ,변경 ,삭제 등의 처리를 위한 라우팅 users.py : 사용자 등록 및 로그인 처리를 위한 라우팅 model 폴더 events.py : 이벤트 처리용 모델을 정의 user.py : 사용자 처리용 모델을 정의 이벤트 플래너 애플리케이션 개발 등록된 사용자는 이벤트를 추가 ,변경삭제 가상환경 설정 python3 -m venv venv (venv) C:\\FastAPI-BOOK\\planner>pip install fastapi uvicorn "pydantic[email]" r..
API 보낸 다양한 형식의 데이터를 화면에 표시하는 프로세스다. Jinja 템플릿 사용 4.1 Jinja 중괄호는 사용해서 템플릿 파일의 일반적인 HTML ,텍스트 등을 표현식 및 구분과 구분한다. {%….%} : 구조를 제어하기 위한 명령을 지정할때 사용 {{todo.item}} : 식의 값을 전달할때 사용 필터 문자열 수정작업은 Jinja의 필터 기능을 사용해야 한다. 템플릿 상속 중복 배제 원칙에 근거한것 큰 규모의 웹 애플리케션을 개발할때 많은 도움이 된다 . 템플릿 상속은 기본 템플릿을 정의한 다음 이 템플릿을 자식 템플릿이 상속하거나 교체해서 사용할수 있게 한다. 4.2 FastAPI 에서 Jinja를 사용하는 방법 pip install jinja2 python-multipart 애플리케이션 ..
응답 모델은 API 라우트 경로가 반환하는 데이터의 템플릿 역할을 하며 , 서버에 전달된 요청을 기준으로 적절한 응답을 렌더링 하기 위해 Pydantic을 사용한다. 3.1 FastAPI의 응답 API응답은 보통 JSON 또는 XML 형식이지만 문서 형식을 전달되기도 하며 헤더와 바디로 구성된다. 응답 헤더 요청 상태 및 응답 바디 전달을 안내하는 정보로 구성된다. 응답 헤더의 예로는 Content-type 이 있으며 반환하는 콘텐츠 유형이 무엇인지 클라이언트에게 알려주는 역할 응답 바디 서버가 클라이언트에게 반환하는 데이터 Content-tpye 헤더에 의해 결정되며 대표적인 예로 application/json이 있다. 상태 코드 서버가 반환한 응답에 포함하는 짧은 고유 코드로, 클라이언트가 보낸 요청..
웹 애플리케이션 구축하는데 핵심적인 부분 클라이언트가 서버로 보내는 http 요청을 처리하는 프로세스다 . HTTP 요청이 지정한 라우트로 전송되면 미리 정의된 로직이 해당 요청을 처리해서 반환한다. 2.1 FastAPI 의 라우팅 라우트는 http 요청 메서드의 요청을 수락하고 선택적으로 인수를 받을수 있도록 정의된다. 요청이 특정 라우트로 전달되면 애플리케이션은 라우트 처리기가 요청을 처리하기전에 해당 라우트가 정의되어있는지 확인한다. 라우트 처리기 : 서버로 전송된 요청을 처리하는 함수 HTTP 요청 메서드 : HTTP 메서드 처리 유형을 정의하는 식별자 2.2 APIRouter 클래스를 사용한 라우팅 APIRouter 클래스는 다중 라우팅을 위한 경로 처리 클래스로 ,fastapi 패키지에 포함 ..
FastAPI 는 빠르고 가볍다 . 1.1 Git 기초 git init 폴더 git 초기화 git add .. git 에 추가 git commit -m ... git 에 commit git ignore 에 경우 환경 파일 virualenv 폴더 IDE 메타데이터 폴더 Git 브랜치 개발자들이 개별적으로 작업 가능하게 함 풀리퀘스트를 통해 코트를 겁ㅁ토하고 협업하는 문화가 조성 새로운 브랜치 만들기 git checkout -b newbrach 브랜치 변경 git checkout branch 1.2 virtualenv 를 사용한 개발 환경 구축 가상환경에서 애플리케이션을 개발하면 특정 패키지를 시스템에 전역으로 설치하지 않아도 된다. 가상환경은 독립된 환경이기 때문에 애플리케이션 의존성이 해당 환경 내에만 ..