본문 바로가기

Python83

[Python] FastAPI에서 CORS 정책 적용하기 이번 시간에는 서버를 구축할때 신경써야할 CORS 정책을 FastAPI 서버에서 적용해보겠습니다. 1. CORS 정책이란? CORS는 Cross-Origin Resource Sharing의 약자로, 웹 페이지에서 다른 도메인의 리소스에 접근할 때 발생하는 보안 정책입니다. 웹 브라우저는 기본적으로 동일 출처 정책(Same-Origin Policy)을 따르는데, 이는 웹 페이지가 동일한 출처에서만 리소스를 요청할 수 있다는 원칙입니다. 출처는 프로토콜, 호스트, 포트가 동일한 경우에 해당합니다. CORS를 적용하지 않고 다른 도메인의 리소스를 요청할 경우 아래와 같은 에러가 발생합니다. 이를 해결하기 위해서는 서버에 접근하는 도메인을 허용하도록 만들어야 합니다. FastAPI 서버에서 진행해보겠습니다. 2.. 2024. 2. 15.
[Python] 죽지않는 웹소켓 만들기 https://stickode.tistory.com/1045 저번 시간에 이어서, 오늘은 데이터 송수신이 없더라도 소켓 연결이 해제되지 않도록 코드를 수정해보겠습니다. 기존 코드는 특정 시간 동안 웹소켓이 데이터를 주고받지 않는다면 연결이 해제되도록 작성되었습니다. 변경한 사용자가 ctrl + c를 눌러서 직접 종료하지 않는 한 소켓 연결이 해제되지 않습니다. 아래 파일을 복사하신 후 실행하시면 됩니다. 파일명은 main.py입니다 import json import websocket import pymysql from websocket import WebSocketApp, WebSocketConnectionClosedException import logging import time logging.basi.. 2024. 2. 14.
[Python] Selenium으로 웹페이지 전체 캡처하기 이번 시간에는 Python으로 Selenium 라이브러리를 사용해서 웹페이지 전체를 캡쳐한뒤 로컬에 저장하는 예제를 진행하겠습니다. 1. Selenium 설치 pip install selenium 2. 소스 코드 이 예제에서는 네이버 메인페이지를 캡쳐했습니다. import time # time 모듈을 임포트하여 sleep 기능을 사용. from selenium import webdriver # Selenium 패키지에서 webdriver 모듈을 임포트. from selenium.webdriver.chrome.options import Options # Chrome 옵션을 설정하기 위해 Options 모듈을 임포트. # 전체 화면 캡처 기능을 정의하는 함수 def full_screenshot(driver,.. 2024. 2. 9.
[Python] 실시간 비트코인 거래 데이터를 MariaDB에 저장하기 https://stickode.tistory.com/1038 저번 시간에 이어서, 오늘은 실시간으로 수신한 비트코인 거래 데이터들을 DB(mariaDB)에 INSERT하겠습니다. MariaDB에는 다음과 같은 테이블을 추가하시면 됩니다. CREATE TABLE trades ( type VARCHAR(50), code VARCHAR(20), timestamp BIGINT, trade_date DATE, trade_time TIME, trade_timestamp BIGINT, trade_price DECIMAL(20, 4), trade_volume DECIMAL(20, 8), ask_bid VARCHAR(10), prev_closing_price DECIMAL(20, 8), `change` VARCHAR(1.. 2024. 2. 5.
[Python] 업비트 API로 실시간 비트코인 거래 데이터 수신하기 오늘은 업비트 API를 사용해서 실시간으로 거래되고있는 비트코인의 데이터를 받아보겠습니다. 아래 파일을 복사하신 후 실행하시면 됩니다. 파일명은 main.py입니다. # 아래 pip 명령어를 터미널에서 먼저 실행해서, 다운로드 받으셔야합니다 # pip install websocket-client import jwt # JWT(Java Web Token) 라이브러리 임포트 import uuid # UUID(Universally Unique Identifier) 라이브러리 임포트 import websocket # 웹소켓 라이브러리 임포트 def on_message(ws, message): data = message.decode('utf-8') # 메시지를 UTF-8로 디코딩 print(data) # 디코딩된.. 2024. 1. 27.
[Python] Pillow 라이브러리로 이미지 처리하기 이번에는 Python Imaging Library인 Pillow 라는 라이브러리로 이미지를 처리하는 예제를 진행하겠습니다. 1. Pillow 설치 pip install Pillow 2. 이미지 그레이스케일 변환 및 회전 from PIL import Image, ImageFilter # 이미지를 불러옵니다. im = Image.open('data/src/lenna_square.png') # 형식, 크기(너비, 높이), 모드 등의 메타 정보를 가져옵니다. # PNG (512, 512) RGB print(im.format, im.size, im.mode) #RGB 각 색상의 최소값과 최대값을 구합니다. # ((54, 255), (3, 248), (8, 225)) print(im.getextrema()) # 지.. 2023. 12. 3.
[Python] huggingface API로 AI 이미지생성 및 저장하기 안녕하세요 huggingface API를 통해 인공지능으로 생성한 이미지를 서버에 저장해보겠습니다. * 테스크 : text to image * 모델 : dreamshaper-v6 * 예상 결과물 테스트 방법 : https://huggingface.co/stablediffusionapi/dreamshaper-v6 에서 prompt를 입력해서 compute를 클릭하세요. 실행환경은 다음 글을 참고해주세요 https://stickode.tistory.com/903 [Python] Flask 를 이용해 웹 서버 실행시키기 Flask 란? 파이썬으로 웹 페이지를 만들 수 있게 해주는 웹 프레임워크입니다. 보통 백엔드의 역할을 주로 수행하게 되는데요 저는 주피터 노트북에서 작성한 인공지능 모델을가지고 간단한 api.. 2023. 9. 15.
[Python] 구글 speech to text api를 사용해 긴 텍스트를 오디오 파일로 변환하고 웹 브라우저에서 재생하기 안녕하세요. 이번 시간에는 구글 cloud platform 에서 제공하는 text to speech api를 통해 텍스트를 오디오로 변환하는 방법을 알아보려 합니다. 우선 api를 사용하기 위해 구글 cloud platform에 새 계정을 만든 뒤 json 키를 받아서 인증 환경 변수를 설정해야 하는데요. 아래의 공식 홈페이지 링크에서 제시하는 순서대로 개발 환경에 대한 세팅을 해주세요. https://cloud.google.com/text-to-speech/docs/before-you-begin?hl=ko 시작하기 전에 | Cloud Text-to-Speech API | Google Cloud 시작하기 전에 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Text-to-S.. 2023. 8. 25.
[Python] Flask 를 이용해 웹 서버 실행시키기 Flask 란? 파이썬으로 웹 페이지를 만들 수 있게 해주는 웹 프레임워크입니다. 보통 백엔드의 역할을 주로 수행하게 되는데요 저는 주피터 노트북에서 작성한 인공지능 모델을가지고 간단한 api 를 만들어 배포하는 과정을 학습하기 위해 flask 를 사용해 보려 합니다. 오늘은 간단하게 플라스크를 통해 웹 서버를 실행시켜 보는 예제를 작성해 보겠습니다. Flask 설치 pip install flask 우선 플라스크 를 사용하기위해 설치를 진행해 줍니다. 기초 사용법(flask의 Hello World) Flask 공식문서의 QuickStart 부분에 제일 처음나오는 기초 코드를 사용합니다. from flask import Flask ## flask 라이브러리에서 Flask import app = Flask(.. 2023. 8. 24.