172만명의 커뮤니티!! 함께 토론해봐요.
미해결
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
먼저 친절하고 자세한 강의 감사합니다. 덕분에 셀레니움을 이용해서 간단하지만 1차로 원하는 부분까지 개발해 봤습니다. 캠핑장 예약을 위해 아직 더 가야 하지만 버튼 하나로 조회 결과 화면까지 이동하는 건 확인했습니다. ㅎㅎ 질문입니다. pyside6 설치 강의에 나오는 Qt for Python 확장 설치를 더이상 지원하지 않는답니다. 섹션13 의 PySide6 설치 및 사용법 강의에 나오는 Qt for Python 을 검색하니 이 확장은 더 이상 사용되지 않습니다. 대신 Qt All Extensions Pack 확장자를 사용하세요. 라는 멧세지가 나옵니다. Qt All Extensions Pack 이걸 설치해도 강의 따라가는 데 문제가 없을까요? 설치 잘 못 되었다가는 꼬일 거 같아 대기중입니다. ㅠㅠ 감사합니다.
dgroups72
2024-10-31T08:09:27.419Z
댓글 2
좋아요 1
조회수 279
해결됨
실전! FastAPI 입문
swagger 로 opt 생성, 검증 api 실행을 했더니 sqlalchemy.engine.Engine ROLLBACK 로그가 출력이 됩니다. 원인을 모르겠습니다... 로그 INFO: Application startup complete. INFO: 127.0.0.1:63654 - "GET /docs HTTP/1.1" 200 OK email-validator not installed, email fields will be treated as str. To install, run: pip install email-validator INFO: 127.0.0.1:63654 - "GET /openapi.json HTTP/1.1" 200 OK 2024-10-31 14:25:27,367 INFO sqlalchemy.engine.Engine SELECT DATABASE() 2024-10-31 14:25:27,367 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine SELECT @@sql_mode 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names 2024-10-31 14:25:27,370 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,372 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2024-10-31 14:25:27,377 INFO sqlalchemy.engine.Engine SELECT user.id, user.username, user.password, todo_1.id AS id_1, todo_1.contents, todo_1.is_done, todo_1.user_id FROM user LEFT OUTER JOIN todo AS todo_1 ON user.id = todo_1.user_id WHERE user.username = %(username_1)s 2024-10-31 14:25:27,377 INFO sqlalchemy.engine.Engine [generated in 0.00018s] {'username_1': 'admin'} INFO: 127.0.0.1:63658 - "POST /users/log-in HTTP/1.1" 200 OK 2024-10-31 14:25:27,603 INFO sqlalchemy.engine.Engine ROLLBACK INFO: 127.0.0.1:63664 - "POST /users/email/otp HTTP/1.1" 200 OK 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine SELECT user.id, user.username, user.password, todo_1.id AS id_1, todo_1.contents, todo_1.is_done, todo_1.user_id FROM user LEFT OUTER JOIN todo AS todo_1 ON user.id = todo_1.user_id WHERE user.username = %(username_1)s 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine [cached since 35.14s ago] {'username_1': 'admin'} INFO: 127.0.0.1:63671 - "POST /users/email/verify HTTP/1.1" 200 OK Sending email to admin@fastapi.com! 2024-10-31 14:26:12,519 INFO sqlalchemy.engine.Engine ROLLBACK src/database/ repository.py from typing import List, Optional from fastapi import Depends from sqlalchemy import select, delete from sqlalchemy.orm import Session from database.connection import get_db from database.orm import ToDo, User class ToDoRepository: def __init__(self, session: Session = Depends(get_db)): self.session = session def get_todos(self) -> List[ToDo]: return list(self.session.scalars(select(ToDo))) def get_todo_by_todo_id(self, todo_id: int) -> ToDo | None: return self.session.scalar(select(ToDo).where(ToDo.id == todo_id)) def create_todo(self, todo: ToDo) -> ToDo: self.session.add(instance=todo) self.session.commit() self.session.refresh(instance=todo) return todo def update_todo(self, todo: ToDo) -> ToDo: self.session.add(instance=todo) self.session.commit() self.session.refresh(instance=todo) return todo def delete_todo(self, todo_id: int) -> None: self.session.execute(delete(ToDo).where(ToDo.id == todo_id)) self.session.commit() class UserRepository: def __init__(self, session: Session = Depends(get_db)): self.session = session def get_user_by_username(self, username: str) -> User | None: return self.session.scalar(select(User).where(User.username == username)) def save_user(self, user: User) -> User: self.session.add(instance=user) self.session.commit() self.session.refresh(instance=user) return user src/service/ user.py import random import time import bcrypt from datetime import datetime, timedelta from jose import jwt class UserService: encoding: str = "UTF-8" JWT_SECRET_KEY: str = "f002393019e8776398370aa671767b860b702854724591cd0da5fc97bda3daf1" JWT_ALGORITHM: str = "HS256" def hash_password(self, plain_password: str) -> str: hashed_password: bytes = bcrypt.hashpw( plain_password.encode(self.encoding), salt=bcrypt.gensalt() ) return hashed_password.decode(self.encoding) def verify_password( self, plain_password: str, hashed_password: str ) -> bool: return bcrypt.checkpw( plain_password.encode(self.encoding), hashed_password.encode(self.encoding) ) def creat_jwt(self, username: str) -> str: return jwt.encode( { "sub": username, "exp": datetime.now() + timedelta(days=1), }, self.JWT_SECRET_KEY, algorithm=self.JWT_ALGORITHM ) def decode_jwt(self, access_token: str) -> str: payload: dict = jwt.decode( access_token, self.JWT_SECRET_KEY, algorithms=[self.JWT_ALGORITHM] ) return payload["sub"] @staticmethod def create_otp() -> int: return random.randint(1000, 9999) @staticmethod def send_email_to_user(email: str) -> None: time.sleep(10) print(f"Sending email to {email}!") src/api/ user.py from fastapi import APIRouter, Depends, HTTPException, BackgroundTasks from cache import redis_client from database.orm import User from database.repository import UserRepository from schema.request import SignUpRequest, LoginRequest, CreateOTPRequest, VerifyOTPRequest from schema.response import UserSchema, JWTResponse from security import get_access_token from service.user import UserService router = APIRouter(prefix="/users", tags=["USER"]) @router.post("/sign-up", status_code=201) def user_sign_up_handler( request: SignUpRequest, user_service: UserService = Depends(), user_repository: UserRepository = Depends(), ): hashed_password: str = user_service.hash_password( plain_password=request.password ) user: User = User.create( username=request.username, hashed_password=hashed_password ) user: User = user_repository.save_user(user) return UserSchema.from_orm(user) @router.post("/log-in", status_code=200) def user_log_in_handler( request: LoginRequest, user_service: UserService = Depends(), user_repository: UserRepository = Depends(), ): user: User | None = user_repository.get_user_by_username( username=request.username ) if not user: raise HTTPException(status_code=404, detail="User Not Found") verified: bool = user_service.verify_password( plain_password=request.password, hashed_password=user.password ) if not verified: raise HTTPException(status_code=401, detail="Not Authorized") access_token: str = user_service.creat_jwt(username=user.username) return JWTResponse(access_token=access_token) @router.post("/email/otp") def create_otp_handler( request: CreateOTPRequest, _: str = Depends(get_access_token), user_service: UserService = Depends() ): otp: int = user_service.create_otp() redis_client.set(request.email, otp) redis_client.expire(request.email, 3 * 60) return {"otp": otp} @router.post("/email/verify") def verify_otp_handler( request: VerifyOTPRequest, background_tasks: BackgroundTasks, access_token: str = Depends(get_access_token), user_service: UserService = Depends(), user_repo: UserRepository = Depends(), ): otp: str | None = redis_client.get(request.email) if not otp: raise HTTPException(status_code=400, detail="Bad Request") if request.otp != int(otp): raise HTTPException(status_code=400, detail="Bad Request") username: str = user_service.decode_jwt(access_token=access_token) user: User | None = user_repo.get_user_by_username(username) if not user: raise HTTPException(status_code=404, detail="User Not Found") background_tasks.add_task( user_service.send_email_to_user, email="admin@fastapi.com" ) return UserSchema.from_orm(user)
python 리팩토링 orm FastAPI pytest
포팃
2024-10-31T05:48:52.384Z
댓글 1
좋아요 0
조회수 242
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
~와 같다라는 식을 쓸때 =가 아닌 == 로 표기하는 이유가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-31T03:26:41.849Z
댓글 2
좋아요 0
조회수 87
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
판다스 강의 다듣고 작업형 들으려는데 작업형1모의문제1 부터 들으면 될까요? 강의안에서 지난시간에 작업형 첫번째 예시문제랑 기출문제를 풀어봤다고 말씀하시는데 풀어본 기억이 없어서요… 혹시 이전에 들어야하는 강의가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
권종오
2024-10-31T01:18:14.582Z
댓글 2
좋아요 0
조회수 149
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
/ 사용할 때와 : 사용할 때 어떻게 구분하나요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T23:48:55.952Z
댓글 2
좋아요 0
조회수 91
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pd.DataFrame 을 하기도 전인데 이렇게 표 형태로 나오는 건 왜일까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T15:35:43.644Z
댓글 1
좋아요 0
조회수 83
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
어떨 때는 그냥 df로 데이터를 확인하고 어떨 때는 df.head()로 확인을 하는데 무슨 차이인가요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T15:05:16.206Z
댓글 2
좋아요 0
조회수 90
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제가 인강은 처음이라 어디서 자료를 불러와야 하는지 모르겠습니다..
python 머신러닝 빅데이터 pandas 빅데이터분석기사
김치현
2024-10-30T12:54:53.991Z
댓글 2
좋아요 0
조회수 122
미해결
비전공자도 이해할 수 있는 DB 설계 입문/실전
안녕하세요 강의 잘 듣고 있어요 다 들으면 도움이 많이 되고 설계가 재밌어 질 거 같습니다. 궁금한 점은 두 엔티티 A, B의 관계를 파악할 때 무조건 처음에 하나의 A, 하나의 B 이렇게 하나의를 붙히고 생각하면 될까요? 아니면 여러개의 A 이렇게도 생각 할 수도 있을 거 같아서요
mysql dbms/rdbms database dba
hoonseung
2024-10-30T12:50:19.334Z
댓글 1
좋아요 0
조회수 214
미해결
RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
테슬라_KR.txt / 리비안_KR.txt 파일이 첨부파일에 없어요.. 첨부파일 중 pdf 폴더도 비어있습니다..
정성범
2024-10-30T12:37:00.288Z
댓글 2
좋아요 1
조회수 247
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원래 주석처리 된거 드래그 후 ctrl + / 를 해도 주석변경이 안되고 계속 / 기호가 나와요. 항상 그러는게 아니라 어떨때는 되고 어떨때는 안되는데 혹시 이유가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
박건우
2024-10-30T05:54:20.049Z
댓글 3
좋아요 0
조회수 320
해결됨
직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
이건 질문 아닙니다. ^^ 구현하고 싶은 간단한 내용이 있었는데, 강의에서 배운 내용을 기반으로 하고, A.I.에 질문하여 코드를 작성한 후 정상 작동에 성공했습니다. 저 같은 왕초보도 작동하는 뭔가를 만들어 내게 하는 이 강의는 정말 훌륭합니다~! 아주 기초적이고 작은 성공이라도 동기부여를 위해 소중합니다. ^^ # ■ 아래 코드의 용도 --- 작동 성공했음 _24-10-30 11:26 # "C:\\Users\\user\\Desktop\\제목 추가\\"에 여러 개의 hwp 파일들이 있을 때 # 파일을 하나씩 열고, 문서의 맨 처음으로 이동하여 파일명(~~~.hwp)을 타이핑하고 엔터를 3번 친 후 저장하고 닫기 import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL","FilePathCheckerModule") import os from time import sleep os.chdir("C:\\Users\\user\\Desktop\\제목 추가\\") # r"C:\Users\user\Desktop\\제목 추가\\"로도 작동 성공함 for i in os.listdir(): hwp.Open(os.path.join(os.getcwd(), i)) sleep(0.2) # 문서 객체 가져오기 --- 일코 doc = hwp.XHwpDocuments.Item(0) # 전체 경로에서 파일명 추출 --- 일코, GPT full_path = doc.FullName file_name = os.path.basename(full_path) # 커서를 원하는 위치로 이동 (예: 문서 맨 처음) --- GPT hwp.HAction.Run("MoveTopLevelBegin") # 파일명 입력 (타이핑) --- GPT hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet) hwp.HParameterSet.HInsertText.Text = file_name hwp.HAction.Execute("InsertText", hwp.HParameterSet.HInsertText.HSet) # 엔터를 3번 치기 --- GPT for _ in range(3): hwp.HAction.Run("BreakPara") hwp.Save() hwp.Clear(1)
learner
2024-10-30T04:40:48.814Z
댓글 0
좋아요 2
조회수 227
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요. [18]에서 level을 5에서 6으로 변경한 것 아닌가요? 결과가 5가 나오는 이유를 모르겠습니다.
python 머신러닝 빅데이터 pandas 빅데이터분석기사
강민균
2024-10-30T04:14:05.981Z
댓글 1
좋아요 0
조회수 87
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요. [17]에서 1) dict변수와 di가 같은 변수인가요? 갑자기 변한 설명이 없어서요. 2) di['name']을 실행하면 왜sam이 나오는지. sam은 무슨 의미인지 모르겠습니다.
python 머신러닝 빅데이터 pandas 빅데이터분석기사
강민균
2024-10-30T03:14:17.866Z
댓글 2
좋아요 0
조회수 72
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
df.loc[:"가격"] df.loc[2, '메뉴':'가격'] 큰따옴표, 작은 따옴표 사용 기준이 헷갈립니다
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T03:02:41.262Z
댓글 1
좋아요 0
조회수 69
미해결
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
1+1 산술 연산을 하기 위하여 실행을 했는데 위와 같은 메세지가 떴습니다. 어떻게 해야 하나요?
python 챗봇 streamlit openai chatgpt
eunh2106
2024-10-30T02:33:06.810Z
댓글 1
좋아요 0
조회수 174
해결됨
파이썬 알고리즘 트레이딩 파트3: 클라우드 거래 자동화
안녕하세요? 오랜만에 질문드립니다~ start_PairTrading_Order_Realtime_final.bat 파일을 강의에서 나온대로 VScode powershell에서 .\start_PairTrading_Order_Realtime_final.bat 을 통해 작동시키면 주문이 잘 체결 되고 있긴한데, window scheduler를 통해 실행시키면 와 같은 화면이 뜨고 실행이 안됩니다. 어떻게 하면 좋을까요?
python azure 퀀트 github-actions crontab
SClee
2024-10-30T02:02:38.139Z
댓글 2
좋아요 1
조회수 172
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
axis = 0 은 행, axis = 1 은 열로 알고 있습니다. 그런데 하기 문제에선 계산이 반대로 되고 있어서 헷갈리는데 확실하게 개념 설명해주실 수 있으실까요? 제가 잘못 알고 있는 것인지요 1) axis = 0 일때 열방향 계산(원래 행방향 계산이 아닌가요?) axis = 1 행방향 계산(원래 열방향 계산 아닌지요)
python 머신러닝 빅데이터 pandas 빅데이터분석기사
minjilz
2024-10-29T23:56:15.530Z
댓글 1
좋아요 0
조회수 167
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경에서 실행 단축키는 따로 없나요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
wsyang
2024-10-29T13:23:37.657Z
댓글 1
좋아요 0
조회수 178
미해결
FastAPI 완벽 가이드
강사님 강좌를 여러 개 보면서 너무 만족을 하던 차라 관심있던 fastapi의 목차를 자세히 보지 못하고 구매부터 했습니다. fastapi를 주로 api 서버로 많이 사용하는 것으로 알던 저는 jwt와 같은 토큰방식 로그인이 강좌에 있을 줄 알았는데, 없어서 많이 아쉬웠습니다. 차후에 이러한 강좌들이 추가될 여지가 있을지 알고 싶습니다. 꼭 vue, react가 아닌, 자바스크립트를 이용한 간단한 통신방식의 프론트와의 연동으로도 구현이 될거 같은데.. 너무 아쉬운 마음에 요청 아닌 질문을 조심스레 드려 봅니다.
python sql sqlalchemy FastAPI
bluebamus
2024-10-29T12:41:04.871Z
댓글 1
좋아요 0
조회수 167