chore: common class 추가, db 접속 시 common 사용하도록 개선

This commit is contained in:
ayuriel 2025-01-31 16:22:23 +09:00
parent aa5807690b
commit 97e2f8190c
5 changed files with 56 additions and 82 deletions

View File

@ -1,29 +1,14 @@
# 패키지 불러오기 # 패키지 불러오기
import os
from urllib.parse import quote_plus
import pymysql
from sqlalchemy import create_engine
import pandas as pd
import numpy as np import numpy as np
from dotenv import load_dotenv import pandas as pd
load_dotenv() import quantcommon
user = os.getenv('DB_USER')
pw = os.getenv('DB_PW')
engine_for_pw = quote_plus(pw)
host = os.getenv('DB_HOST')
port = int(os.getenv('DB_PORT'))
db = os.getenv('DB_DB')
# DB 연결 # DB 연결
engine = create_engine(f'mysql+pymysql://{user}:{engine_for_pw}@{host}:{port}/{db}') common = quantcommon.QuantCommon()
con = pymysql.connect(user=user, engine = common.create_engine()
passwd=pw, con = common.connect()
host=host,
port=port,
db=db,
charset='utf8')
mycursor = con.cursor() mycursor = con.cursor()
# 가치 지표 계산 # 가치 지표 계산
# 분기 재무제표 불러오기 # 분기 재무제표 불러오기

View File

@ -1,32 +1,18 @@
import os import re
from urllib.parse import quote_plus import time
import pymysql
from sqlalchemy import create_engine
import pandas as pd import pandas as pd
import requests as rq import requests as rq
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import re
from tqdm import tqdm from tqdm import tqdm
import time
from dotenv import load_dotenv
load_dotenv() import quantcommon
user = os.getenv('DB_USER')
pw = os.getenv('DB_PW')
engine_for_pw = quote_plus(pw)
host = os.getenv('DB_HOST')
port = int(os.getenv('DB_PORT'))
db = os.getenv('DB_DB')
# DB 연결 # DB 연결
engine = create_engine(f'mysql+pymysql://{user}:{engine_for_pw}@{host}:{port}/{db}') common = quantcommon.QuantCommon()
con = pymysql.connect(user=user, engine = common.create_engine()
passwd=pw, con = common.connect()
host=host,
port=port,
db=db,
charset='utf8')
mycursor = con.cursor() mycursor = con.cursor()
# 제무재표 크롤링 # 제무재표 크롤링

View File

@ -1,5 +1,3 @@
import logging
import os
import re import re
import time import time
from io import BytesIO from io import BytesIO
@ -9,8 +7,8 @@ import pandas as pd
import requests as rq import requests as rq
from tqdm import tqdm from tqdm import tqdm
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
import pymysql
from dotenv import load_dotenv from dotenv import load_dotenv
import quantcommon
load_dotenv() load_dotenv()
@ -125,12 +123,7 @@ def process_for_total_stock(biz_day):
def save_ticker(ticker): def save_ticker(ticker):
con = pymysql.connect(user=os.getenv('DB_USER'), con = quantcommon.QuantCommon().connect()
passwd=os.getenv('DB_PW'),
host=os.getenv('DB_HOST'),
port=int(os.getenv('DB_PORT')),
db=os.getenv('DB_DB'),
charset='utf8')
mycursor = con.cursor() mycursor = con.cursor()
query = f""" query = f"""
@ -175,12 +168,7 @@ def process_for_wics(biz_day):
def save_sector(sector): def save_sector(sector):
con = pymysql.connect(user=os.getenv('DB_USER'), con = quantcommon.QuantCommon().connect()
passwd=os.getenv('DB_PW'),
host=os.getenv('DB_HOST'),
port=int(os.getenv('DB_PORT')),
db=os.getenv('DB_DB'),
charset='utf8')
mycursor = con.cursor() mycursor = con.cursor()
query = f""" query = f"""
@ -201,4 +189,4 @@ def save_sector(sector):
if __name__ == '__main__': if __name__ == '__main__':
latest_biz_day = get_latest_biz_day() latest_biz_day = get_latest_biz_day()
process_for_total_stock(latest_biz_day) process_for_total_stock(latest_biz_day)
# process_for_wics(latest_biz_day) process_for_wics(latest_biz_day)

View File

@ -1,34 +1,21 @@
# 패키지 불러오기 # 패키지 불러오기
import os
from urllib.parse import quote_plus
import pymysql
from sqlalchemy import create_engine
import pandas as pd
from datetime import date
from dateutil.relativedelta import relativedelta
import requests as rq
import time import time
from tqdm import tqdm from datetime import date
from io import BytesIO from io import BytesIO
from dotenv import load_dotenv
load_dotenv() import pandas as pd
user = os.getenv('DB_USER') import requests as rq
pw = os.getenv('DB_PW') from dateutil.relativedelta import relativedelta
engine_for_pw = quote_plus(pw) from tqdm import tqdm
host = os.getenv('DB_HOST')
port = int(os.getenv('DB_PORT')) import quantcommon
db = os.getenv('DB_DB')
# DB 연결 # DB 연결
engine = create_engine(f'mysql+pymysql://{user}:{engine_for_pw}@{host}:{port}/{db}') common = quantcommon.QuantCommon()
con = pymysql.connect(user=user, engine = common.create_engine()
passwd=pw, con = common.connect()
host=host,
port=port,
db=db,
charset='utf8')
mycursor = con.cursor() mycursor = con.cursor()
# 티커리스트 불러오기 # 티커리스트 불러오기

28
example/quantcommon.py Normal file
View File

@ -0,0 +1,28 @@
import os
from urllib.parse import quote_plus
import pymysql
from dotenv import load_dotenv
from sqlalchemy import create_engine
class QuantCommon:
def __init__(self):
load_dotenv()
self.user = os.getenv('DB_USER')
self.pw = os.getenv('DB_PW')
self.engine_for_pw = quote_plus(self.pw)
self.host = os.getenv('DB_HOST')
self.port = int(os.getenv('DB_PORT'))
self.db = os.getenv('DB_DB')
def create_engine(self):
return create_engine(f'mysql+pymysql://{self.user}:{self.engine_for_pw}@{self.host}:{self.port}/{self.db}')
def connect(self):
return pymysql.connect(user=self.user,
passwd=self.pw,
host=self.host,
port=self.port,
db=self.db,
charset='utf8')