묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결실전! FastAPI 입문
왜 return타입이 ToDo라는 스트링인가요?
안녕하세요.항상 좋은 강의 감사드립니다.수업을 듣던중 2:31경에 나오는 리턴타입을 왜 스트링으로 설정하는지 궁금해서 질문드립니다.이상입니다. 감사합니다.
-
해결됨실전! FastAPI 입문
ORM 연관관계
안녕하세요!Nest에서 Fast API로 컨버젼중입니다. Nest는 Many to Many, Many to One 등등이러한 연관관계를 설정해서 테이블을 생성합니다.Fast API에서는 아래 코드처럼 단순히 join만 걸어두고 사용하면 되는 걸까요?? class User(Base): __tablename__ = "user" id = Column(Integer, primary_key=True, index=True) username = Column(String(256), nullable=False) password = Column(String(256), nullable=False) todos = relationship("ToDo", lazy="joined")
-
해결됨실전! FastAPI 입문
Oracle DB 연결과 관련해 질문이 있습니다..
Sqlalchemy 라이브러리와 Python-oracledb 드라이버를 이용해 DB 연결을 하려고 하는데 쉽지 않습니다..저는 service name 정보만 있고 SID 정보는 없는 상태인데, 공식문서를 참고해 아래와 같이 접속을 시도해도 에러가 발생합니다..ㅠ 에러 내용 )File "src/oracledb/impl/thin/transport.pyx", line 289, in oracledb.thin_impl.Transport.send_oob_breakOSError: [Errno 22] Invalid argumentDB 접속 코드 )import sqlalchemy engine = sqlalchemy.create_engine("oracle+oracledb://MY_USERNAME:MY_PASSWORD@MY_DB_HOST:MY_DB_PORT/?service_name=MY_DB_SERVIC_NAME")disable_oob=True로 하면 될 것 같은데, sqlalchemy에서 어떻게 해당 값을 세팅해야 하는지 모르겠습니다...ㅠ따로 설정파일을 만들어야 하나요?ㅠㅠ
-
미해결실전! FastAPI 입문
섹션 2, 3의 PATCH API의 차이점
안녕하세요 강의를 듣던 도중 궁금한 것이 생겨 질문드립니다섹션 2에서의 PATCH API는 else문으로 is_done=True를 is_done=False로 바꾸는 처리를 따로 하지않아 True 상태를 False로 못바꾸는 반면에섹션 3에서의 PATCH API는 Ture를 False로 바꿀수 있다고 이해했는데 혹시 맞을까요??웹 개발을 처음 공부하다 보니 이해를 잘 못했나 해서 질문드렸습니다
-
해결됨실전! FastAPI 입문
ORM 테이블 생성
안녕하세요nest로 개발을 진행하다가 fast API로 전향하려는 개발자 입니다.저와 같은 경우는, TypeORM을 사용하고 있었습니다.TypeORM은 아래 코드와 같이 DB와 연결해 놓고 @Entity 어노테이션을 사용하면 테이블이 자동 생성됩니다.강의를 보면 테이블을 생성하는 쿼리를 console로 만들어서 DB SQL에 직접 작성하는 것으로 확인됩니다.FAST API는 NEST처럼 테이블이 자동 생성되는 기능이 없는 걸까요??또한 @ManyToMany @ManyToOne과 같은 어노테이션을 사용하면 연관관계가 쉽게 맵핑되어별도의 join 쿼리 없이도 조회,수정,삭제가 가능합니다.이러한 부분 또한 FAST API는 지원하는 기능이 없는 걸까요?? import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class PostsModel { @PrimaryGeneratedColumn() //알아서 값을 1씩 증가하는 것을 만들어 준다. id: number; @Column() author: string; @Column() title: string; @Column() content: string; @Column() likeCount: number; @Column() commentCount: number; } import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { PostsModule } from './posts/posts.module'; import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ imports: [ PostsModule, TypeOrmModule.forRoot({ //forRoot -> typeOrm과 nestJs을 연결할 수 있는 연결고리를 만드는 것 type: 'postgres', host: '127.0.0.1', port: 5432, username: 'postgres', password: 'postgres', database: 'postgres', entities: [], //데이터베이스와 연동될 모델들 synchronize: true, //nestJS에서 작성하는 typeOrm 코드와 데이터베이스싱크를 자동으로 맞출 것이냐(개발에서는 true, 프로덕션에서는 false) }), ], controllers: [AppController], providers: [AppService], }) export class AppModule {}
-
해결됨실전! FastAPI 입문
테스트 코드 오류
안녕하세요 테스트 코드 사용 중 오류가 잡히지 않아서 문의 드립니다. 강의에서 설명해주신 것처럼 아래와 같이 코드를 작성했지만 오류가 발생합니다.어떻게 해야 할까요? from fastapi.testclient import TestClient from main import app # api들이 있는 app을 검증할 클라이언트 생성 client = TestClient(app=app) def test_health_check(): # api 요청 response = client.get("/") # 반환 값 검증 assert response.status_code == 200 assert response.json() == {"ping": "pong"}아래는 오류 내용 입니다.(fastapi_orm) C:\Users\User\Desktop\Fast_API(ORM)\code\src>pytest ============================================================================= test session starts ============================================================================= platform win32 -- Python 3.10.16, pytest-8.3.5, pluggy-1.5.0 rootdir: C:\Users\User\Desktop\Fast_API(ORM)\code\src plugins: anyio-4.8.0 collected 0 items / 1 error =================================================================================== ERRORS ==================================================================================== _____________________________________________________________________ ERROR collecting tests/test_main.py _____________________________________________________________________ tests\test_main.py:5: in <module> client = TestClient(app) ..\..\..\..\anaconda3\envs\fastapi_orm\lib\site-packages\starlette\testclient.py:399: in __init__ super().__init__( E TypeError: Client.__init__() got an unexpected keyword argument 'app' =========================================================================== short test summary info =========================================================================== ERROR tests/test_main.py - TypeError: Client.__init__() got an unexpected keyword argument 'app' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ============================================================================== 1 error in 0.86s ===============
-
미해결실전! FastAPI 입문
orm relationship 정의 중 해당 에러 발생 시 어떻게 고쳐야 하는걸까요
sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper[ScheduleEntity(schedules)], expression 'CountryEntity' failed to locate a name ('CountryEntity'). If this is a class name, consider adding this relationship() to the <class 'src.models.schedule.ScheduleEntity'> class after both dependent classes have been defined. cities = relationship("src.models.city.CityEntity", back_populates="country", cascade="all, delete-orphan", lazy="joined") schedules = relationship("src.models.schedule.ScheduleEntity", back_populates="country", cascade="all, delete-orphan", lazy="joined")이미 이렇게 다 해놨는데 말이죠...
-
해결됨실전! FastAPI 입문
FastAPI 폴더 구조에 대해 질문이 있습니다.
안녕하세요. FastAPI 프로젝트의 폴더 구조에 대해서 궁금한 점이 생겨서 질문 드립니다.처음에는 라우터에 모든 로직을 넣어서 라우터와 Repository만 분리해서 개발을 하다가, 3 레이어드 아키텍처로 분리를 좀 해볼까 생각이 들었습니다.controller, service, repository 이렇게 나누어 보려고 하는데요. 예를들어 user, board와 같은 도메인이 있다고 하면, 각 폴더를 도메인별로 나누어서 구조를 잡는게 좋을까요? 아니면, controller 폴더 안에 user_controller.py, board_controller.py 등의 파일들이 모여있는게 좋을까요? 선생님께서는 실무에서 어떻게 폴더 구조를 가져가시는지도 궁금합니다.감사합니다.
-
해결됨실전! FastAPI 입문
질문 있습니다.
안녕하세요. FastAPI로 개발한 어플리케이션을 Rocky 서버에 올려서 실행시키려고 합니다.그런데, Sqlalchemy를 통해 DB와 연결하는 부분에서 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb8 in position 61: invalid start byte위와 같은 에러가 계속 발생하는데요. env에서 받아오는게 잘못됐나 싶어서 직접 스트링으로 넣어봐도 똑같은 에러가 계속 발생하고 있습니다.서버의 locale도 찍어보면LANG=ko_KR.UTF-8 LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8" LC_ALL=잘 설정되어있는데, 뭐가 문제일까요? 아래는 DB 연결하는 부분 코드입니다.from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from core.settings.settings import settings DATABASE_URL = f"postgresql://{settings.DB_USER}:{settings.DB_PASSWORD}@{settings.DB_HOST}:{settings.DB_PORT}/{settings.DB_NAME}" print(f"DB: {DATABASE_URL}") engine = create_engine( DATABASE_URL, echo=True, connect_args={"options": "-c search_path=schema"} ) SessionFactory = sessionmaker(autoflush=False, autocommit=False, bind=engine) def get_db(): session = SessionFactory() try: yield session finally: session.close()
-
해결됨실전! FastAPI 입문
ORM 개념
안녕하십니까? 좋은 강의 1회독 후, 계속 부족한 부분 수강하는 수강생입니다.다시 공부하다가 제대로 이해하게 맞는지 궁금한게 있어 질문드렸습니다. ORM이라하면 Python 환경에서 외부 서버에 구동되고 있는 DB에 대해서 객체지향의 추상화와 상속의 개념을 적용하여 Python에서 외부 서버의 DB에 대해서 SQL 명령어를 수행할 수 있도록 도움을 준다라고 이해하면 좋을까요?
-
해결됨실전! FastAPI 입문
mysql root 비밀번호 변경관련
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=todos -e MYSQL_DATABASE=todos -d -v todos:/db --name todos mysql:8.0ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호'; 명령어로 root계정의 비밀번호를 바꿨고, 이후에 mysql -u root -p로 root계정에 접속할 때는 변경된 비밀번호로 잘 작동합니다. 그러나,workbench에서 localhost:3306 root계정에 접속하려할 때, 계속해서 강의중 설정한 todos라는 비밀번호를 입력해야 접근이 가능한 상황입니다.왜 cmd에서 변경한 비밀번호가 워크벤치에 적용되지 않는것인지 궁금해서 문의드립니다. 해결방법이 있을까요?
-
해결됨실전! Django 활용
강의와 .md 차이
안녕하세요. 강의 잘 보고 있습니다.깃허브에 제공해주신 섹션 마크다운 파일과 영상과 다를 때가 존재하고, 마크다운 파일에 내용이 적혀져 있지 않을 때도 존재합니다. 여유가 된시다면 main 브랜치에 섹션 마크다운 파일들 내용을 모두 채워주시면 감사하겠습니다. ! 더 보기 좋을 것 같아요
-
해결됨실전! FastAPI 입문
[질문] patch API
patch부분 웹사이트에 적용이 안되는데 왜 그런지 알수있을까요?
-
해결됨실전! FastAPI 입문
디자인 패턴
덕분에 Fastapi 관련 수강 완료하였습니다. 이제는 디자인 패턴에 대해 설계를 공부해보려는데, Spring의 경우 MVC 패턴을 주로 사용하는데, Fastapi에서는 주로 어떤 디자인패턴으로 설계를 하시는 지 궁금하여 질문드렸습니다. 감사합니다
-
해결됨실전! FastAPI 입문
main.py 리로드문제
WARNING: StatReload detected changes in 'main.py'. Reloading...에러표시와 함께 웹 리로드가 안되는거같아요 delete api 작성한것 또한 스웨거 에서 확인되지않는데 혹시 해당관련 정보 받을수있을까요
-
해결됨실전! FastAPI 입문
인터프리터 오류
가상환경을 만들고 pycharm 인터프리터에 들어가면 invalud python3.10이라고 뜨는데 어떻게 해결해야할까요?
-
해결됨실전! FastAPI 입문
로그 저장에 대한 질문입니다.
안녕하세요. FastAPI로 개발을 하는 중, 로그 저장에 대해서 생각하는 시간을 좀 가져봤습니다.저는 요청, 응답, 쿼리 이렇게 3가지로 나누어서 일자별로 각각의 파일에 저장을 하려고 하는데요. 혹시 FastAPI에서 자체적으로 지원하는 기능중에 이렇게 로그를 나누어 저장하는 기능이 있을까요? 감사합니다.
-
해결됨실전! FastAPI 입문
Internal Server Error
이렇게 인터프리터랑 main.py 파일을 알맞게 사용하는데, Internal Server Error가 뜨고 컴퓨터를 재부팅하면 정상적으로 실행이 되는데 혹시 무슨 오류인지 알 수 있을까요?
-
해결됨실전! FastAPI 입문
PATCH API - 수정
PATCH API를 통해 todo를 수정하는 코드를 적용하고 실행시켰을 때, 응답의 Response body에 null이 찍힙니다..원인을 찾지 못해 질문드립니다.
-
해결됨실전! FastAPI 입문
파이참 임포트 문제
안녕하세요. fastapi를 사용해서 서버를 개발하고있는데, 한가지 불편한것이 있어서 여쭤보려고 합니다. 다름이 아니라 외부에 작성해놓은 함수를 import 할 때 생기는 문제인데요.project| - src| - | - api| - | - extension| - | - exception| - | - main.py이렇게 프로젝트 트리가 구성되어 있다고 했을때, project 경로에서 uvicorn src.main:app 으로 서버를 실행하면 ModuleNotFoundError: No module named 'extension' 이런 에러가 발생합니다. 이게 import 를 할 때 src.from extension.~ import ~ 이렇게 되어있지 않고 import 할 때, 자동으로 from extension.~ import ~ 이렇게 import가 되어서 모듈을 찾지 못해 발생하는 에러인 것 같은데요.혹시 자동으로 임포트 할 때부터 src.from extension.~ import ~ 이렇게 소스루트부터 import 하게 하는 설정이 따로 있을까요? 하나하나 적어주기가 너무 불편해서 여쭤봅니다 ㅠ
주간 인기글
순위 정보를
불러오고 있어요