묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
async, await 질문
안녕하세요.비동기처리 관련하여 질문드립니다.async 키워드가 비동기로 처리하기 위한 함수의 선언이고 실제 비동기 처리가 이루어져야 하는 부분은 await 키워드를 붙여주는데 여기서 await 설명해주실 때 헷갈리는 부분이 있어서요. 비동기는 코드를 순차적으로 기다리지 않고 작업이 완료되지 않아도 그 다음 코드를 실행하는 방식이고, 여기서 await 키워드는 해당 작업이 끝나는 걸 기다리게 하는 키워드로 알고 있는데 설명해 주실 때 해당 함수가 끝날 때까지 현재 함수를 일시 정지한다.고 하셨는데 여기서 해당 함수는 뭐고 현재 함수는 뭘 말하는 건가요 ? 해당 함수는 await 키워드가 붙은 작업을 의미하고 현재 함수는 이 await 작업을 포함하고 있는 함수를 의미 하나요 ? 그리고 만약 이게 맞다면 await 키워드가 붙은 작업이 실행되는 동안 그 작업이 포함된 함수가 아닌 다른 작업들은 수행이 되는 거죠 ? (쓰레드가 따로 생성되서 처리되는 걸로 아는데 이게 맞는건지 ...)자바스크립트 쪽에서 async / await 관련된 설명들을 좀 보면 await 키워드를 쓰면 비동기가 강제적으로 동기 처리가 되어 코드가 순차적으로 수행된다고 표현하는 글들이 종종 있던데 fast api 에서도 같은 개념인가요 ? 비동기 처리를 위해 작성한 코드인데 강제 동기 처리가 된다는 게 이해가 안갑니다.감사합니다.
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
파라미터 문의
안녕하세요.from typing import list 추가해줬고, 다음과 같이 작성하였는데 docs 에서 테스트 하려고 보니 파라미터를 받는 부분이 없네요.설명 부탁드립니다.아울러 fast api를 처음 접하는 사람들은 이게 실행이 어떻게 되고 어떻게 swagger ui를 활용하고 타입힌트가 뭐고 등등의 세부적인 설명이 필요할 듯한데 이러한 부분이 좀 더 추가되었으면 합니다. 완전 초심자를 타켓층으로 하는 강의인데 생각보다 생략되는 부분이 많네요.from typing import List@app.get("/test_items/") async def read_items(q : List[str] = None): query_items = {"q" : q} return query_i
-
미해결실전! FastAPI 입문
PyCharm 내 Python Console 사용 질문
WSL2를 사용해 강의를 따라가고 있습니다.파이참에서 파이썬 콘솔을 실행하면 위와 같이 재시작, 정지, 한 줄씩 실행 버튼이 잘 보이는 경우가 있고, 아래처럼 보이지 않는 경우가 있습니다. 이런 경우는 뭐가 문제일까요?또한, 파이썬 콘솔에서 코드를 작성한 이후 엔터를 입력해도 다음 줄로 넘어가기만 하고 실행이 되지 않습니다.한 줄씩 실행하려면 alt + shift + e 이렇게 입력해야 하는데, 이렇게 코드를 실행하게 되면 여러 줄은 또 실행되지 않습니다... 뭐가 문제인지 알려주시면 감사하겠습니다.
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
소스코드는 어디서 받을 수 있나요..?
소스코드는 어디서 받을 수 있나요...
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
라우터 함수를 비동기함수로 작성하셨다가 동기함수로 작성하시기도 하는 이유가 궁금합니다.
2:36초에 app.post에서 정의한 함수는 비동기함수로 정의하지 않고, 4:50초에 app.get에서 정의한 함수는 비동기함수로 정의되어있는데 이 차이를 구분하신 이유가 따로 있을까요?
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
좀 더 맛깔나게 써봅시다! / 질문
3:43에 값 입력할 때 조금 헷갈려서 아래 사진과 같이 입력하면 되는 걸까요?입력 시, Internal Server Error가 발생하는데 혹시 시도해 볼 수 있는 해결 방안이 있는지 여쭤 봅니다 (파이썬 3.11버전 활용하고 anaconda 설치 안하고 ms에 가상환경 구축하였습니다)
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
엔드포인트와 HTTP메서드! _ 강좌에서 질문 있습니다
안녕하세요 강사님 아래와 같은 질문 있습니다터미널에서 uvicorn main:app 입력으로 실행 후 clinet.py 를 어떻게 실행하면 될까요? 그리고 강의에서 캡쳐해주신 예제코드좀 업로드 해주실 수 있으실까요? 화면에 재생버튼때문에 코드 아랫부분이 잘 보이지 않습니다....
-
해결됨핵심으로 보는 FastAPI: 개념, 문법, 인증, 테스트, 로깅에 사용량제어까지
엔드포인트와 HTTP 메서드! / 질문
강의 상에 설명으로는 이해가 부족하여 질문 합니다. 1. 앞에 작성한 코드에 코드명이 따로 안나와 있어서 앞 선 코드가(import logging으로 시작하는 코드) main.py가 맞을까요?실행 결과가 강의 창(16:14)만으로는 이해가 안되어서 main.py를 'uvicorn main:app' 으로 실행한 후에 client.py를 터미널 상에 실행하면 되는건가요?ps. 강의자료를 github주소로 기재해주신다고 하셨는데 github주소를 찾을 수 없어서 추가로 문의 드립니다
-
해결됨실전! FastAPI 입문
Redis 연결중 import
Redis import 가 안되네요 이런경우 어떻게 처리 하는지요? Docker 에 redis container 는 설치되었어요
-
해결됨실전! FastAPI 입문
섹션3 테스트코드 오류발생..
테스트코드 작성시 경고가 뜨는데, 어떻게 해결해야 할까요?
-
미해결실전! FastAPI 입문
실수도 DB todo테이블을 삭제했습니다
contents내용을 수정하려다가 꼬여서 drop명령어로 새로 테이블을 작성하고 할려했는데 테이블을 그대로 만들었는데 uvicorn main:app 이 명령어를 수행하면 500internal error가 뜹니다. ㅠㅠ 어디서부터 뭘 수정해야 할지 모르겠는데 다시 파이썬프로젝트와 DB를 연결할수 있게 할수 있는방법 있을까요??
-
해결됨실전! FastAPI 입문
섹션3 testcode get_단일조회 api
여기까지 코드 잘 따라서 작성하였고 #200부분을 잘 작동합니다. #404 부분코드를 삭제하고 실행하면 잘 돌아가는데404부분 코드를 작성하니까 48번째 줄에서 자꾸 오류가 뜨는데 해결방법이 있을까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
DB와 연결이 되지 않아 질문 남겨요
먼저AppDbContext.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; namespace MMO_EFCore { // EF Core 작동 스텝 // 1) DB Context 만들 때 // 2) DbSet<T>을 찾는다 // 3) 모델링 class 분석해서, 칼럼을 찾는다. // 4) 모델링 class에서 참조하는 다른 class가 있으면, 걔도 분석한다. // 5) OnModelCreating 함수 호출 (추가 설정 = override) // 6) 데이터 베이스의 전체 모델링 구조를 내부 메모리에 들고 있음 public class AppDbContext : DbContext { // DbSet<Item> -> EF Core한테 알려준다 // Item이라는 DB 테이블이 있는데, 세부적인 칼럼/키 정보는 item 클래스를 참고해 public DbSet<Item> Items { get; set; } // DB ConnectionString // 어떤 DB를 어떻게 연결해라 (각종 설정, Authorization 등) public const string ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=EFCoreDb;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False"; protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseSqlServer(ConnectionString); } } } DataModel.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MMO_EFCore { public class Item { // PK public int ItemId { get; set; } public int TemplateId { get; set; } // 101 -> 집행검 public DateTime CreateDate { get; set; } // 다른 클래스 참조 -> FK (Navigational Property) public int OwnerId { get; set; } public Player Owner { get; set; } } // 클래스 이름 = 테이블 이름 = Player public class Player { // 이름Id = PK public int PlayerId { get; set; } public string Name { get; set; } } } Program.csusing Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage; namespace MMO_EFCore { internal class Program { // 초기화 시간 좀 걸림 static void InitializeDB(bool forceReset = false) { using (AppDbContext db = new AppDbContext()) { if (forceReset && (db.GetService<IDatabaseCreator>() as RelationalDatabaseCreator).Exists()) return; db.Database.EnsureDeleted(); db.Database.EnsureCreated(); Console.WriteLine("DB Initialized"); } } static void Main(string[] args) { InitializeDB(forceReset: true); } } } SQL Server연결 문자열Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=EFCoreDb;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False 이렇게 되어있는 상태이고실행시 DB Initialized 출력을 못하고 계속 끝나버리길래디버그로 확인을 해보니if (forceReset && (db.GetService<IDatabaseCreator>() as RelationalDatabaseCreator).Exists()) return;이 부분에서 if 문에서 걸려서 return 됩니다 --> https://stackoverflow.com/questions/33911316/entity-framework-core-how-to-check-if-database-exists이 사이트와https://learn.microsoft.com/en-us/ef/core/managing-schemas/ensure-created이 사이트를 참조 했는데 해결을 못해서 질문 남겨봅니다.(Microsoft.EntityFrameworkCore.SqlServer 버전 8.0.3)
-
해결됨실전! FastAPI 입문
BackgroundTask 인자값 전달
안녕하세요 강사님 강의 재밌게 잘보고 있습니다BackGround task 강의에서 궁금한게 생겨서 질문 남깁니다. 아래는 verify_otp_handler 의 선언부인데def verify_otp_handler( request : VerifyOTPRequest, background_tasks : BackGroundTasks ... ) backgound_tasks 라는 객체는 DI로 받지도 않고 있는데 어떻게 함수 내부에서 사용될 수 있는지가 궁금합니다. request 라는 객체는 request 헤더부에서 넘어온 값이 프레임워크에 의해서 VerifyOTPRequest로 전처리되거라 어디서부터 왔는지 그 출처를 알겠지만, backgound_tasks는 DI도 되지 않았고 헤더부에서 넘어온 것도 아닌데 어떻게 생성된건지 궁금합니다.
-
미해결실전! FastAPI 입문
docker mysql 연동
docker에서는 mysql에 정상적으로 접속이 되는데python console을 통해서 연결을 시도하면 sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2059, "Authentication plugin 'b'auth_gssapi_client'' not configured")다음 에러가 나옵니다.select host, user from mysql.user where user= 'root';쿼리를 통해서 user 정보를 확인해보면 정상적으로 user가 셋팅 되어있습니다.
-
해결됨실전! FastAPI 입문
pytest는 어떻게 모킹함수를 인지하는지
안녕하세요 강사님강의 정말 재밌게 보고 있습니다.수강 도중 궁금한 내용이 생겨 질문 남깁니다.mocker.patch("main.get_todo_by_todo_id", return_value=Todo(id=1,contents="todo",is_done=True))여기서 인자값으로 문자열 main.get_todo_by_todo_id 를 전달했는데, pytest는 어떻게 저 함수를 모킹대상으로 인지하나요? 개념적으로 설명해주시면 감사합니다~!! response = client.patch("/todos/1", json={"is_done":False})해당 api 를 호출하고 실행하는 과정에서main_get_todo_by_todo_id 함수를 호출할 때 어떻게 모킹처리가 되는지 궁금합니다.
-
해결됨실전! FastAPI 입문
타입힌트 질문
안녕하세요 강사님강의 듣는 도중 조금 궁금한 내용이 생겨서 질문드립니다. 코드에서 아래와 같이 타입힌트를 사용하는 경우가 있는데def done(self) -> "Todo": self>is done = True ~ 왜 Todo에 "" 를 감싸주시는걸까요??그냥 Todo 라고 타입힌트를 줘도될거 같은데 이유가 궁금해서요
-
해결됨실전! FastAPI 입문
코드 질문
안녕하세요.파이썬 2.7만 주로 쓰다 오랜만에 쓰니 좀 헷갈리는게 있어 질문드립니다.encoding: str = "UTF-8"service 작성하시면서 설명해주신 코드인데,encoding = "UTF - 8" 이렇게 써도 encoding 변수에 뭐가 들어가는지 바로 확인이 되는데 굳이 : str 과 타입을 명시할 이유가 있나요 ? 이렇게 작성하였을 때 왜 이렇게 작성하고 어떠한 장점이 있는지 궁금합니다.비슷한 질문으로 def save_user(self, user: User) -> User:다음과 같이 반환 타입을 적어줘야 하는 것도 설명 부탁드립니다.작성하면서도 이걸 굳이 적어줘야 하는지가 궁금해서 질문드립니다.
-
해결됨실전! FastAPI 입문
router testcode 문의
router test code 에서 test_main.py 파일에 api.todo라고 main을 바꾸어 줬는데 import를 따로 안 시켜줘도 되나요 ?main.py는 from api import todo로 import 시키는데 test_main.py는 안 그래도 되는지 궁금합니다.
-
해결됨실전! FastAPI 입문
docker 설치 에러
안녕하세요.윈도우 os 사용중이고 docker desktop 설치 시 이후데몬이 활성화가 안되어 질문드립니다.데몬 활성화를 위해서는 가상화 지원이 되어야 하는데, bios 세팅 및 os 가상화 설정을 모두 하여서 작업관리자에서 가상화:사용 이라고 까지 표기가 되어도 하이퍼바이저 지원이 안된다는 에러가 나옵니다.wsl 설치 또한 가상화가 지원이 안된다는 에러와 함께 설치가 안되어 구글링 이후 문의 드립니다.