from requests import get
# 상태 체크 웹사이트 튜플로 정의 하기
websites =(
"google.com",
"naver.com",
"https://facebook.com"
)
#상태 저장
result = {}
# 루프for web in websites:
# 첫 문장이 https:// 가 없으면 https:// 추가한다ifnot (web.startswith("https://")):
web = f"https://{web}"# 상태 체크
response = get(web)
if response.status_code == 200:
result[web] = "OK"else:
result[web] = "FAILED"#전체 사이트 체크 정보 출력print(result)
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
# 파이썬에서 키움증권의 클래스를 사용하려면 PyQt의 QAxWidget 클래스를 사용해 인스턴스를 생성
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PYSTOCK")
self.setGeometry(300,300,300,400)
# QAxWidget 클래스의 인스턴스
# QAxWidget 클래스는 QWidget / QAxBase 상속받음
# QAxWidget 요거 하나로 QWidget / QAxBase 정의된 메서드 사용가능
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
bnt1 = QPushButton("로그인",self)
bnt1.move(20,20)
# 이벤트와 이벤트를 처리할 메서드를 connect라는 메서드로 연결
bnt1.clicked.connect(self.loginClick)
bnt2 = QPushButton("로그인 체크",self)
bnt2.move(20,70)
bnt2.clicked.connect(self.loginCheck)
def loginClick(self):
# 인스턴스를 통해 CommConnect 메서드를 호출하기만 하면
# 로그인을 위한 윈도우가 자동으로 실행 / 반환값으로 로그인 여부 체크
# 리턴 0 성공 , 음수 실패
ret =self.kiwoom.dynamicCall("CommConnect()")
def loginCheck(self):
# 0 미연결/ 1 연결완료
if self.kiwoom.dynamicCall("GetConnectState()") == 0:
self.statusBar().showMessage("접속 안됨")
else:
self.statusBar().showMessage("접속중")
if __name__ =="__main__" :
app = QApplication(sys.argv)
mywindow = MyWindow()
mywindow.show()
app.exec_()
실행화면
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QAxContainer import *
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("PYSTOCK")
self.setGeometry(300,300,300,150)
self.kiwoom = QAxWidget("KHOPENAPI.KHOpenAPICtrl.1")
# CommConnect 메서드를 MyWindow 클래스의 생성자에서 호출했습니다.
# 따라서 윈도우가 생성됨과 동시에 로그인 창도 함께 화면에 표시
self.kiwoom.dynamicCall("CommConnect()")
# self를 사용하는 이유는 클래스의 다른 메서드에서도 해당 변수를 사용해 객체에 접근하기 위해서
# event_connect 메서드에서도 사용되기 때문에 text_edit가 아니라 self.text_edit
self.text_edit = QTextEdit(self)
self.text_edit.setGeometry(10,60,200,80)
#읽기/쓰기 모드를 변경하기 위해 setEnabled
self.text_edit.setEnabled(False)
# OnEventConnect 이벤트가 발생하면 event_connect 메서드 실행..
# 이벤트와 이벤트 처리 메서드를 연결할 때는 connect 메서드를 사용
self.kiwoom.OnEventConnect.connect(self.event_connect)
# 메서드의 첫 번째 인자는 인스턴스를 의미 두 번째 인자로 nErrCode에 해당하는 값을 받으면 됩니다
def event_connect(self ,err_code):
if err_code == 0:
self.text_edit.append("로그인 성공")
if __name__ =="__main__" :
app = QApplication(sys.argv)
mywindow = MyWindow()
mywindow.show()
app.exec_()
로그인 전 실행 화면로그인 성공 후 키움 API 이벤트( OnEventConnect ) 받아온 화면