Python

Python/Flask

Flask 프로젝트 생성, Pycharm 환경에서 실행 (윈도우)

Flask 프로젝트 생성 플라스크 프로젝트는 하나의 웹 사이트라 생각하면 된다. 즉, 플라스크 프로젝트를 생성하면 웹 사이트를 한 개 생성하는 것과 같다. 그리고 플라스크 프로젝트 안에는 보통 한 개의 플라스크 애플리케이션이 존재한다 프로젝트 디렉토리 생성 플라스크 프로젝트는 여러 개가 될 수 있으므로 프로젝트를 모아둘 프로젝트 루트 디렉토리 생성을 해야한다 예제에서는 C:\projects 디렉토리를 프로젝트들의 루트 디렉토리로 정하고 진행한다 C:\> mkdir projects C:\> cd projects 루트 디렉토리에서 저번 포스팅에서 만든 가상 환경에 진입한다 C:\projects> C:\venvs\myproject\Scripts\activate 플라스크 프로젝트를 담을 myproject 디렉토..

Python/Flask

Flask란? Flask 개발 환경 준비, Flask 설치

Flask란? Flask란 마이크로 웹 프레임워크 플라스크는 파이썬으로 작성된 마이크로 웹 프레임워크이다 프레임워크를 간결하게 유지하고 확장할 수 있도록 만들어져있다 아래의 코드만으로 동작할 수 있을만큼 간결하다 from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello world!" if __name__ == "__main__": app.run(debug=True, port=5000) 이 코드만으로 locallhost:5000/에서 'Hello world!'를 출력할 수 있다고 한다 플라스크에는 폼, 데이터베이스를 처리하는 기능이 없다. 장고는 프레임워크 자체에 폼과 데이터베이스를 처리하는 기능이 포함되..

Python

python logging (로그파일 생성)

로그파일이란 온라인 시스템에서 컴퓨터의 모든 실행 내역을 수집하여 기록하는 파일. 장애로부터 복구할 때 이 파일의 정보가 필요하다 프로그램 개발 시에는 동작 상태, 결과 또는 오류 발생시 내용들을 파일에 저장해야 할 경우가 생긴다. 로그가 없다면 프로그램이 동작했는데 정상적으로 동작을 했는지 알기 힘들기 때문이다 로그파일 생성할 때 고려해야할 점 1. 로그 형식 (일자, 시간, 메세지 등의 형식을 정의) 2. 파일 관리 (로그파일 개수, 몇 개의 파일로 관리할 것인지, 일자별로 관리할 것인지..? 로그 파일 보관 주기) 로그파일 생성 파이썬의 logging 모듈 로그를 파일에 출력할 때 사용하는 모듈. 로그는 파일뿐만 아니라 소켓, 이메일, 콘솔 등 다양한 방법으로 출력이 가능하다 로깅 레벨 DEBUG ..

Python

[pyautogui] click, keyDown, press not working, python 관리자 권한으로 실행

pyautogui 는 마우스와 키보드를 제어하는 라이브러리인데 click(), press(), keyDown() 등의 함수가 실행이 안되는 에러가 발생했다 해결방법은 관리자 권한으로 코드를 실행하는 것이다 나의 경우, 윈도우 환경, pycharm IDE로 코드를 돌리고 있었기 때문에 우클릭 > 관리자 권한으로 실행 이 방법으로 해결할 수 있었다

Python

[selenium] NoSuchElementException 해결 방법

XPath나 ID값이 맞는데 selenium이 찾지 못하는 경우는 해당 html 태그가 iframe에 속해있는지를 확인해 주어야 한다. 찾으려는 태그가 iframe 안에 속해있었기 때문에 해당 에러를 발생했다. 해결 방법 driver.switch_to.frame(driver.find_element(By.ID, '~~frame')) 추가로, 이후에 다른 태그를 찾을 때 해당 태그가 다른 iframe에 속해있는지 확인해주고 해당 iframe이 아닌 다른 iframe으로 소속되어 있을 때는 아래의 코드로 초기화를 해준 다음 다음 태그를 찾으면 된다. driver.switch_to.default_content()

Python

[selenium] cookie 설정 방법

쿠키 저장 driver.add_cookie({"name": "", "value": ""}) 이렇게 저장하면 path는 / 로 설정되고 만료 기한은 프로그램이 실행되는 동안이다. path, expires등 따로 설정이 필요한 경우 (아직 테스트는 안 해보았지만, 일단 될 수 있으면 selenium에서 제공하는 쿠키 저장방식을 사용하려고 한다.) driver.execute_script("document.~~~")

Python

[selenium] no such element: Unable to locate element

selenium으로 dropdown 선택하기를 하는 중에 에러가 발생했다 no such element:Unable to locate element 아이디를 이용해 찾았는데 코드에는 문제가 없다고 생각했는데 에러가 나서 찾아보니 select_element = driver.find_element(By.ID, 'selkindcls') select_object = Select(select_element) select_object.select_by_value('토지') 태그 안에 있을 때는 자체 DOM을 사용하기 때문에 찾지 못한다는 것을 알게 되었다 해결방법은 switch_to.frame()을 이용하는 것이다 driver.switch_to.frame(driver.find_element(By.ID, 'iframe..

Python

[selenium] executable_path has been deprecated, please pass in a Service object

크롬 드라이브를 실행할 때 executable_path를 이용해서 열었더니 다음과 같은 에러가 발생했다. 해결방법은 다음과 같다. 1. webdriver-manager를 설치 pip install webdriver-manager 2. ChromeDriverManager를 이용하여 해당 Chrome버전에 맞는 chromedriver를 이용할 수 있게 한다 from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager def init_chrome_driver(): chrome_options = webdriver.Chro..