sqlalchemy module이 설치되어있음에도 불구하고 위와 같이 서버를 실행시키면 no module named 'sqlalchemy' 라는 오류가 뜨는데 어떻게 해야하나요.. +추가로 위의 문제를 해결하기 위해서 시도했던 방법으로, 아래와 같이 flask_sqlalchemy를 통해서 sqlalchemy를 불러왔지만 from flask_sqlalchemy import SQLAlchemy 마찬가지로 flask_sqlalchemy에 대해서도 찾을 수 없다는 오류가 뜹니다..
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
바쁘신 와중에 너무 옛날 강의 가지고 질문드리는 것이 아닌지 너무 죄송스럽습니다. ㅜ 바쁘신 시간 많이 뺏지 않기 위해 후딱 하나만 여쭤볼게요 Update방식에는 Connected상황과 Disconnected상황이 있고, Disconnected 상황에서 처리방식으로 ReLoad와 Full방식이 있다는 것까지는 이해했습니다. 다만 Full방식에 있어서 모든 정보를 넘겨주어야 한다는 말씀을 듣고 제가 제대로 이해한게 맞는지 헷갈리기 시작했습니다. ㅜㅜ 제가 이해한 내용은, 일부 정보만가지고 Full방식의 Update를 시도하면 뭔가 Update가 Fail이 될 것이라 생각했습니다. 그런데, Entity 클래스의 객체를 하나 생성하고 속성값을(Name) 하나만 변경시켜 Update요청을 하였을 때, 특별한 문제없이 Update가 Complete가 됩니다.(다른 속성값들에 대한 정보를 하나도 입력을 안하더라도...) 궂이 모든 정보를 넘겨주지 않고 일부 정보만으로도 Full방식의 Update가 되는 이 상황이 정상적인 것이 맞는지, 뭔가 제가 말씀하신 내용의 요지를 잘못 집고 있는 것인지 말씀해주세요.
안녕하세요. 비동기처리 관련하여 질문드립니다. async 키워드가 비동기로 처리하기 위한 함수의 선언이고 실제 비동기 처리가 이루어져야 하는 부분은 await 키워드를 붙여주는데 여기서 await 설명해주실 때 헷갈리는 부분이 있어서요. 비동기는 코드를 순차적으로 기다리지 않고 작업이 완료되지 않아도 그 다음 코드를 실행하는 방식이고, 여기서 await 키워드는 해당 작업이 끝나는 걸 기다리게 하는 키워드로 알고 있는데 설명해 주실 때 해당 함수가 끝날 때까지 현재 함수를 일시 정지한다. 고 하셨는데 여기서 해당 함수는 뭐고 현재 함수는 뭘 말하는 건가요 ? 해당 함수는 await 키워드가 붙은 작업을 의미하고 현재 함수는 이 await 작업을 포함하고 있는 함수를 의미 하나요 ? 그리고 만약 이게 맞다면 await 키워드가 붙은 작업이 실행되는 동안 그 작업이 포함된 함수가 아닌 다른 작업들은 수행이 되는 거죠 ? (쓰레드가 따로 생성되서 처리되는 걸로 아는데 이게 맞는건지 ...) 자바스크립트 쪽에서 async / await 관련된 설명들을 좀 보면 await 키워드를 쓰면 비동기가 강제적으로 동기 처리가 되어 코드가 순차적으로 수행된다고 표현하는 글들이 종종 있던데 fast api 에서도 같은 개념인가요 ? 비동기 처리를 위해 작성한 코드인데 강제 동기 처리가 된다는 게 이해가 안갑니다. 감사합니다.
안녕하세요. 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
WSL2를 사용해 강의를 따라가고 있습니다. 파이참에서 파이썬 콘솔을 실행하면 위와 같이 재시작, 정지, 한 줄씩 실행 버튼이 잘 보이는 경우가 있고, 아래처럼 보이지 않는 경우가 있습니다. 이런 경우는 뭐가 문제일까요? 또한, 파이썬 콘솔에서 코드를 작성한 이후 엔터를 입력해도 다음 줄로 넘어가기만 하고 실행이 되지 않습니다. 한 줄씩 실행하려면 alt + shift + e 이렇게 입력해야 하는데, 이렇게 코드를 실행하게 되면 여러 줄은 또 실행되지 않습니다... 뭐가 문제인지 알려주시면 감사하겠습니다.
3:43에 값 입력할 때 조금 헷갈려서 아래 사진과 같이 입력하면 되는 걸까요? 입력 시, Internal Server Error가 발생하는데 혹시 시도해 볼 수 있는 해결 방안이 있는지 여쭤 봅니다 (파이썬 3.11버전 활용하고 anaconda 설치 안하고 ms에 가상환경 구축하였습니다)
안녕하세요 강사님 아래와 같은 질문 있습니다 터미널에서 uvicorn main:app 입력으로 실행 후 clinet.py 를 어떻게 실행하면 될까요? 그리고 강의에서 캡쳐해주신 예제코드좀 업로드 해주실 수 있으실까요? 화면에 재생버튼때문에 코드 아랫부분이 잘 보이지 않습니다....
강의 상에 설명으로는 이해가 부족하여 질문 합니다. 1. 앞에 작성한 코드에 코드명이 따로 안나와 있어서 앞 선 코드가(import logging으로 시작하는 코드) main.py 가 맞을까요? 실행 결과가 강의 창(16:14)만으로는 이해가 안되어서 main.py 를 'uvicorn main:app' 으로 실행한 후에 client.py 를 터미널 상에 실행하면 되는건가요? ps. 강의자료를 github주소로 기재해주신다고 하셨는데 github주소를 찾을 수 없어서 추가로 문의 드립니다
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
먼저 AppDbContext.cs using 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.cs using 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.cs using 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)
안녕하세요 강사님 강의 재밌게 잘보고 있습니다 BackGround task 강의에서 궁금한게 생겨서 질문 남깁니다. 아래는 verify_otp_handler 의 선언부인데 def verify_otp_handler( request : VerifyOTPRequest, background_tasks : BackGroundTasks ... ) backgound_tasks 라는 객체는 DI로 받지도 않고 있는데 어떻게 함수 내부에서 사용될 수 있는지가 궁금합니다. request 라는 객체는 request 헤더부에서 넘어온 값이 프레임워크에 의해서 VerifyOTPRequest로 전처리되거라 어디서부터 왔는지 그 출처를 알겠지만, backgound_tasks는 DI도 되지 않았고 헤더부에서 넘어온 것도 아닌데 어떻게 생성된건지 궁금합니다.
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가 셋팅 되어있습니다.
안녕하세요 강사님 강의 정말 재밌게 보고 있습니다. 수강 도중 궁금한 내용이 생겨 질문 남깁니다. 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 함수를 호출할 때 어떻게 모킹처리가 되는지 궁금합니다.