본문 바로가기

Python

(11)
(스크랩) ★★★ SQLAlchemy에서 Join 하는 방법 (feat. SQLAlchemy 1.4 ORM 공식 도큐먼트) https://docs.sqlalchemy.org/en/14/orm/queryguide.html#joins ORM Querying Guide — SQLAlchemy 1.4 Documentation The select() construct accepts ORM entities, including mapped classes as well as class-level attributes representing mapped columns, which are converted into ORM-annotated FromClause and ColumnElement elements at construction time. A Select object that con docs.sqlalchemy.org
(스크랩) 파이썬에서 여러 REQUEST 동시에 보내기 https://codethief.io/ko/sending-simultaneous-requests-using-python/ Python에서 여러 Request 동시에 보내기 - CodeThief 비동기식 동작을 대응하기 전까지는, 파이썬 만큼 완벽한 프로그래밍 언어도 없습니다. 최근에 여러 요청을 한번에 보내야 하는 작업이 필요했습니다. 또한 그 요청들의 응답을 한 변수에 모아 codethief.io https://stackoverflow.com/questions/40492894/python-multithreading-max-workers/40505434#40505434
(스크랩) ★★★파이썬에서 스레드/프로세스 풀 사용하기 (feat. 비동기 처리하기) foo() 라는 비동기 함수를 두번 실행하는것과 스레드풀에 넣어서 start 하는것과 차이가 있나? 없을거같은데..받는쪽에서만 작업하면 되는거아닌가? --> 두 라인에 걸쳐 request를 실행해도, 각각 response를 기다린다. --> 기다지 않기 위해(=동시 처리) 스레드풀에 넣어서 start 한다. --> 또는 reqeust 옵션으로 timeout을 거는 것도 방법! https://velog.io/@cha-suyeon/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%97%90%EC%84%9C-%EC%8A%A4%EB%A0%88%EB%93%9C%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%ED%92%80-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 ..
(스크랩) ★★★ Python GIL 개념 (feat. 파이썬 병렬 프로그래밍 하기) 파이썬에서는 GIL 때문에 스레드를 늘리는 것은 의미가 없나요? --> 그렇다. 병렬 프로그래밍을 하려면 멀티 프로세싱을 해야한다. --> 멀티 프로세싱을 사용하면 코어 개수만큼 병렬처리가 가능하다. --> 각 프로세스의 단일 스레드가 코어와 1:1로 매칭되어 병렬적으로 실행 되는 것! --> (하나의 프로세스 내에 스레드가 여러개더라도 GIL 때문에 하나의 스레드만 실행이 가능함) --> 즉, 코어 개수만큼 병렬 프로그램을 실행하고 싶으면 코어 개수만큼의 프로세스를 생성하고, 단일 스레드로 실행 해야한다. 그런데 threading 이라는 모듈을 사용하면 수행시간이 줄어드는 것은 어떻게 이해하면 되나요? --> I/O bound task 일 경우에는 멀티스레딩이 성능 개선에 도움된다! --> 병렬 프로그..
(스크랩) FastAPI 에서 non-async 함수 비동기로 처리하기 https://keyhyuk-kim.medium.com/fastapi-%EB%8A%94-non-async-%ED%95%A8%EC%88%98-%EB%B9%84%EB%8F%99%EA%B8%B0%EB%A1%9C-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0-8e3345a69517 FastAPI 에서 non-async 함수 비동기로 처리하기 FastAPI는 requests와 같은 non async 라이브러리도 async하게 실행시켜줍니다. keyhyuk-kim.medium.com
(스크랩) 파이썬 로깅의 모든 것 https://hamait.tistory.com/880 파이썬 로깅의 모든것 파이썬 로깅의 모든것 파이썬 로깅에 대한 "모든것은" 사실 낚시구요. ㅎㅎ (유희열이 진행했던 All that music 이라는 라디오 프로그램에서 내가 좋아하는 국악이나 시부야계는 거의 나오지도 않 hamait.tistory.com https://docs.python.org/3/library/logging.handlers.html logging.handlers — Logging handlers — Python 3.10.2 documentation Source code: Lib/logging/handlers.py The following useful handlers are provided in the package. Note t..
(스크랩 ) ★★ sqlalchemy async session execute 'where', 'order by', 'limit' (feat. Top N & Bottom N 쿼리) async def get_biggest_cities(session: AsyncSession) -> list[City]: result = await session.execute(select(City).order_by(City.population.desc()).limit(20)) return result.scalars().all() where까지 붙이면, 아래처럼 하면 될듯 async def get_biggest_cities(session: AsyncSession) -> list[City]: result = await session.execute(select(City).where(City.name == 'seoul').order_by(City.population.desc()).limit(20)) return..
공백('' )은, None은 아니지만, False이다. 그래서 is not None 으로는 공백('')을 걸러낼 수 없다 (feat. 거르는 법은?) 요약 '' 공백은, None은 아니지만, False이다. 그래서 is not None 으로는 '' 을 걸러낼 수 없다. 거르는 방법은, 그냥 if text: 식으로 하면 됨. if cur_orw['text_date'] is not None: pass 이렇게 하니까, 'cur_orw['text_date']'가 '' 을 값으로 가진 경우에도 True로 됐다. 그래서, None 이거나, '' 인 경우에 모두 거를 수 있는 방법이 필요했다. 바로 바로 if cur_orw['text_date']: pass https://stackoverflow.com/questions/5690491/best-way-to-do-a-not-none-test-in-python-for-a-normal-and-unicode-empty-s..