묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결배달앱은 어떻게 내 주변의 맛집을 찾을까?
강사님께서 entity를 사용하신 이유가 궁금합니다
안녕하세요강사님의 강의를 수강 중인 주니어 개발자입니다!요즘 디자인 패턴을 공부하면서 강사님 강의를 듣다보니까 궁금한 점이 생겼습니다저는 요즘 service, repo, controller(apis) + dto 기반의 간단한 레이어드 기반 아키텍처를 차용해서 디렉토리를 구성하고 있는데요아직 DDD를 조금 밖에 학습하지 않아, 잘은 모르지만,entity를 사용한 강사님 코드를 보면, DDD가 많이 떠오릅니다entities가 도메인 객체인 것 같은 느낌도 들고요그래서 그런지 강의를 절반 이상 2번씩 들은 지금도강사님의 디렉토리 구조가 익숙치 않습니다 강사님께서 이 강의를 만드실 때, 디렉토리 구조를 entity 기반으로 만드신 이유가 따로 있으실까요?강사님께서 디렉토리 구조를 구성할 때, 어떤 방식으로 디렉토리 구조를 구성하시는 지도 궁금합니다 ㅎㅎ
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
교안 제공은 안되나요?
교안 제공은 안되나요?
-
해결됨파이썬 API 마스터! FastAPI
깃허브 레포지토리로 버전관리하기
안녕하세요. 덕분에 fastapi를 쉽게 배우는 중입니다. ㅎㅎ다름아니라 깃허브 레포 생성해서 올리고 싶은데요. fastapi 개발환경이 익숙치 않아서 문제를 겪고 있습니다. (예를들면 git status하니깐 pip로 설치한 라이브러리가 모두 뜬다던지.. 등등입니다. )혹시 간단하게나마로 여기에 깃허브에 올리는 순서를 적어주실수 있으신가요??예를들어)1.어디 폴더위치에 들어간다.2.여기서 무엇을 한다. 리모트 등등3.git push origin feature한다.
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
TypeError: field Config is defined without type annotation
'FastAPI + MongoDB ODM 셋업' 강의 중 book.py 파일을 만든 뒤 서버를 실행할 때 아래와 같은 에러 메시지가 노출됩니다. TypeError: field Config is defined without type annotation Config에 type annotation이 정의되지 않았다고 하는데, 타입을 정의하거나 클래스 이름을 바꿔보는 등의 방법을 적용해보아도 같은 에러코드가 노출되고 있어 문의드립니다. 제가 사용하고 있는 환경의 python은 3.8버전이며, odmantic 등 라이브러리는 최신 버전을 사용하고 있습니다.
-
해결됨실전! FastAPI 입문
session.scalars(select(ToDo))에러
orm.py를 다음과 같이 작성했고 from sqlalchemy import Boolean, Column, Integer, String from sqlalchemy.orm import declarative_base Base = declarative_base() # base란 클래스로 db모델링 class ToDo(Base): __tablename__ = 'todo' # table이름 id = Column(Integer, primary_key=True, index=True) content = Column(String(256), nullable=False) is_done = Column(Boolean, nullable=False) # todo 객체의 출력을 쉽게 보기위해 repr def __repr__(self): return f'<ToDo(id={self.id}, content={self.content})>, is_done={self.is_done}'connection.py도 다음과 같이 작성했으나from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker DATABASE_URL = "mysql+pymysql://root:todos@127.0.0.1:3306/todos" engine = create_engine(DATABASE_URL, echo=True) # echo는 쿼리의 처리를 확인 SessionFactory = sessionmaker(autocommit=False, autoflush=False, bind=engine)강의안에서 말씀하신대로 import까지 완료하고명령어 session.scalars(select(ToDo)) 를 실행하는 과정에서 자꾸 이렇게 뜹니다 에러가 한두개가 아니라서 감도 안잡힙니다.. 도와주세요2024-06-06 20:53:23,126 INFO sqlalchemy.engine.Engine SELECT todo.id, todo.content, todo.is_done FROM todo2024-06-06 20:53:23,126 INFO sqlalchemy.engine.Engine [cached since 368.2s ago] {}Traceback (most recent call last): File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\default.py", line 924, in do_execute cursor.execute(statement, parameters) File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 1199, in read first_packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet packet.raise_for_error() File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval)pymysql.err.OperationalError: (1054, "Unknown column 'todo.content' in 'field list'")The above exception was the direct cause of the following exception:Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2024.1.2\plugins\python\helpers\pydev\pydevconsole.py", line 364, in runcode coro = func() ^^^^^^ File "<input>", line 1, in <module> File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\orm\session.py", line 2459, in scalars return self._execute_internal( ^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\orm\session.py", line 2236, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\orm\context.py", line 293, in orm_execute_statement result = conn.execute( ^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1418, in execute return meth( ^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\sql\elements.py", line 515, in _execute_on_connection return connection._execute_clauseelement( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1640, in _execute_clauseelement ret = self._execute_context( ^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1846, in _execute_context return self._exec_single_context( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1986, in _exec_single_context self._handle_dbapi_exception( File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 2353, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\sqlalchemy\engine\default.py", line 924, in do_execute cursor.execute(statement, parameters) File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "C:\Users\yhkim\inflern_project\todos\Lib\site-packages\pymysql\connections.py", line 1199, in read first_packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
해결됨실전! FastAPI 입문
갑자기 웹페이지 수정사항이 적용되질 않습니다.
from fastapi import FastAPI, Body from pydantic import BaseModel # 쉽게 requestbody(입력받는 함수인자) 처리 app = FastAPI() # 앱이란 객체에 api연결해서 서버를 띄우면 HTTP요청 보낼 수 있다. @app.get("/") def health_check_handler(): return {"ping": "pong"} todo_data = { 1: { "id": 1, "contests": "실전! FastAPI 섹션 0 수강", "is_done": False, }, 2: { "id": 2, "contests": "실전! FastAPI 섹션 1 수강", "is_done": False, }, 3: { "id": 3, "contests": "실전! FastAPI 섹션 2 수강", "is_done": False, } } @app.get("/todos") def get_todos_handler(order: str | None = None): ret = list(todo_data.values()) if order and order == "DESC": return ret[::-1] return ret @app.get("/todos/{todo_id}") def get_todo_handler(todo_id: int): return todo_data.get(todo_id, {}) class CreateTodoRequest(BaseModel): id: int contests: str is_done: bool @app.post("/todos") def create_todo_handler(request: CreateTodoRequest): todo_data[request.id] = request.dict() return todo_data[request.id] @app.patch("/todos/{todo_id}") def update_todo_handler( todo_id: int, is_done: bool = Body(..., embed=True), ): todo = todo_data.get(todo_id) if todo: todo["is_done"] = is_done return todo return {}해당 코드까지 진행했고, (todos) PS C:\Users\yhkim\inflern_project\todos\src> uvicorn main:app --reload로 실행했는데 어느순간부터 웹페이지가 수정사항이 적용되지 않습니다.
-
해결됨실전! FastAPI 입문
유닛테스트 관련 질문입니다
강사님 안녕하세요! api 테스트가 아닌 유닛 테스트도 한번 해보고 싶어서 시도를 해봤는데요.(예를 들면, UserRepository의 get_user_by_username를 test 코드에 UserRepository.get_user_by_username 이렇게 입력하고 테스트 시도)depends 관련해서 AttributeError: 'Depends' object has no attribute 이러한 에러가 나는데이 에러를 해결해보려고 검색도 해보고 그랬는데 잘 모르겠어서..혹시 유닛 테스트는 어떤 방식으로 할수 있을지 조언 부탁드립니다 ㅠㅠ검색해보니 repository의 depends와 연관된 것 같기도 한데 이를 어떻게 해결할지 방법을 잘 모르겠습니다. 감사합니다!
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
PDF파일 다운로드는 어디서 할 수 있나요?
소스코드는 다운로드 받았습니다만, 본 영상초반에 설명하시는 다른 자료는 어디서 확인가능한지 문의 드립니다.
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
html 오류
공유하신 파일로 업데이트 했으나 역시나 문제 해결이 안됩니다. 그리고 html 파일을 열었는데 저렇게 나오는데... 여기서 무슨 문제가 있는게 아닐까요? "Property assignment expected javascript." 자바스크립트도 문제인거 같은데... 답변 부탁드립니다. 참고로 다른건 저는 그냥 html 인데, 잔재미님은 django html 로 되어있습니다....
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. # app 폴더 아래 main.py @app.post("/collect", response_class=HTMLResponse) async def collect(request: Request): brandlist = BrandList() brands = await brandlist.run() oy_models = [] for brand in brands: oy_model = BrandListModel( code=brand["code"], brand=brand["brand"], collection_time=brand["time"], status=brand["status"], ) oy_models.append(oy_model) await mongodb.engine.save_all(oy_models) return templates.TemplateResponse( "./index.html", {"request": request, "title": "수집기", "brands": brands}, ) # app 폴더 아래 spcrper.py class BrandList: URL = "https://www.#######.co.kr" def unit_url(self): url = f"{self.URL}/store/main/getBrandList.do" return url async def fetch(self): async with aiohttp.ClientSession() as session: async with session.get(self.unit_url()) as response: soup = BeautifulSoup(await response.text(), "html.parser") area_info = soup.select("a[data-ref-onlbrndcd]") branddics = [] for info in area_info: code = info["data-ref-onlbrndcd"] name = info.text collectiontime = date.today() item = [i["code"] for i in branddics] if code in item: pass else: branddic = { "code": f"{code}", "brand": f"{name}", "time": f"{collectiontime}", "status": "Old", } branddics.append(branddic) await session.close() return branddics def run(self): return asyncio.run(self.fetch()) 안녕하세요. 강사님. scraper.py 는 terminal에서 값을 잘 가져오고 있습니다. server.py에서 구동 시, 아래와 같은 error가 나오는데 원인을 찾지 못해서요 ㅠ RuntimeError: asyncio.run() cannot be called from a running event loopC:\Users\user\Desktop\Project_Scraper\venv\Lib\site-packages\uvicorn\protocols\http\httptools_impl.py👎 RuntimeWarning: coroutine 'BrandList.fetch' was never awaitedRuntimeWarning: Enable tracemalloc to get the object allocation traceback 코드 리뷰 좀 부탁드리겠습니다.
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
pip install 해야할 목록을 알고 싶습니다.
강의를 다 듣고 코드를 실행하는데 실행이 되지 않아 pip install 해야할 목록을 알고 싶습니다.
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
memos.html err
안녕하세요 html 에러가 발생했는데, 모듈이 안깔려서 그런가요? 왜 이런 현상이 일어 날까요?
-
해결됨실전! FastAPI 입문
No module named 'sqlalchemy'
sqlalchemy module이 설치되어있음에도 불구하고 위와 같이 서버를 실행시키면 no module named 'sqlalchemy' 라는 오류가 뜨는데 어떻게 해야하나요..+추가로 위의 문제를 해결하기 위해서 시도했던 방법으로,아래와 같이 flask_sqlalchemy를 통해서 sqlalchemy를 불러왔지만from flask_sqlalchemy import SQLAlchemy마찬가지로 flask_sqlalchemy에 대해서도 찾을 수 없다는 오류가 뜹니다..
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
passlib 비활성화 해결방법
안녕하세요 passlib dp 노랑 불이 들어왔는데, 어떻게 해결하나요? 구글링 해도 안나오네요 ㅠㅠ
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
jinja2templates
수업대로 127.0.0.1:8000/items/{id} 를 넣었는데starlette.routing.NoMatchFound: No route exists for name "static" and params "path".internal Server Error 가 나옵니다 ㅠBASE_DIR, directory 모두 수업대로 다 입력했습니다. 구글링을 해도 방법을 찾질 못해서요.
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
mysql install 문제
안녕하세요 잔재미님!! 늦은 시간에 죄송합니다. 몇 일간 MYSQL 때문에 삽질을 너무 하고 있네요 ㅠㅠ 일단 MYSQL 인텔_맥 버전 다운로드 받아서 설치했는데, 실행이 안되네요... 수십번 지우고 깔고 하다 또 요런 " ERROR! The server quit without updating PID file" 오류가 발생했습니다. 구글링으로 찾아서 해볼건 다해봐는데 안되네요~ 심지어 마리아DB도 해봤는데 마찬가지 오류가 발생하여 삭제를 했습니다... anaconda3 로 경로가 되어있는데 이게 문제인가요? 도저히 모르겠네요. 조언좀 부탁드립니다
-
미해결파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)
몽고DB 설정 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. FastAPI + MongoDB : MongoDB ODM 셋업 강의를 듣고 있는데 궁금한 점이 생겨서요!섹션4에서 몽고DB 데이터베이스 설정할 때 "nest"로 프로젝트명을 설정하여 해당 url도 받고 했었는데 섹션5에서는 프로젝트명도 바뀌고 url도 바껴서요. 제가 "nest" 설정했던 것처럼 새로 "fastapi-pj" 프로젝트 만들어서 url 받고 secret.json에 넣으면 될까요?
-
미해결처음하는 파이썬 백엔드 FastAPI 입문 (FastAPI부터 비동기 SQLAlchemy까지) [풀스택 Part1-2]
MYSQL 맥북 오류
안녕하세요 mysql 을 설치 했습니다 인텔맥북프로 입니다. 수십번깔아보고 지워보고 했는데도 스타트가 안됩니다. ㅠㅠ 심지어 8.0.31 버전 맞춰서 설치했는데도 안됩니다. 터미널 상태도 올립니다. 그전에 도커에서 mysql 이미지 생성도 잘됐는데... 빠른 답변 부탁드려요 ㅠㅠ
-
해결됨실전! FastAPI 입문
섹션 테스트 코드 오류..
버전 문제가 아닌 거 같아서 문의 드립니다.. 구글링 해도 안 나와서 질문 드립니다..ㅠㅠ
-
해결됨파이썬 API 마스터! FastAPI
async, await 질문
안녕하세요.비동기처리 관련하여 질문드립니다.async 키워드가 비동기로 처리하기 위한 함수의 선언이고 실제 비동기 처리가 이루어져야 하는 부분은 await 키워드를 붙여주는데 여기서 await 설명해주실 때 헷갈리는 부분이 있어서요. 비동기는 코드를 순차적으로 기다리지 않고 작업이 완료되지 않아도 그 다음 코드를 실행하는 방식이고, 여기서 await 키워드는 해당 작업이 끝나는 걸 기다리게 하는 키워드로 알고 있는데 설명해 주실 때 해당 함수가 끝날 때까지 현재 함수를 일시 정지한다.고 하셨는데 여기서 해당 함수는 뭐고 현재 함수는 뭘 말하는 건가요 ? 해당 함수는 await 키워드가 붙은 작업을 의미하고 현재 함수는 이 await 작업을 포함하고 있는 함수를 의미 하나요 ? 그리고 만약 이게 맞다면 await 키워드가 붙은 작업이 실행되는 동안 그 작업이 포함된 함수가 아닌 다른 작업들은 수행이 되는 거죠 ? (쓰레드가 따로 생성되서 처리되는 걸로 아는데 이게 맞는건지 ...)자바스크립트 쪽에서 async / await 관련된 설명들을 좀 보면 await 키워드를 쓰면 비동기가 강제적으로 동기 처리가 되어 코드가 순차적으로 수행된다고 표현하는 글들이 종종 있던데 fast api 에서도 같은 개념인가요 ? 비동기 처리를 위해 작성한 코드인데 강제 동기 처리가 된다는 게 이해가 안갑니다.감사합니다.