프로그래밍사업51 SQLAlchemy로 이미 있는 데이터베이스(기존 테이블) 사용하기 SQLAlchemy로 이미 있는 MySQL 의 기존 테이블 사용하기 python으로 MySQL이나 SQLite, Postgres를 사용하기위해 SQLALCHEMY 다시 공부하고 있습니다. 그러던 중 dbeaver를 이용해 기존 테이블을 sqlalchemy 가지고 오는 방법이 필요하여 이번 포스팅으로 작성하면서 머릿속을 정리해 보았습니다. 이걸 알아보면서 그냥 PyMySQL로 할까 말까 하다가 제 나름대로 기준을 어느걸 쓸지 조건을 정해보았습니다. FASTAPI를 쓸데는 sql알케미로 그외에 단순 작업할때는 PyMySQL을 사용하려 합니다. 물론 이 기준은 언제 다시 바뀔지 모르지만... 일단 SQLALchmey로 기존에 있는 DB에 접속하여 사용하는 방법은 찾아보기 어려워 제가 한번 정리해보았습니다. 그.. 프로그래밍사업/사이드 프로젝트 2022. 7. 5. 더보기 ›› FASTAPI 사용을 위한 SQLAlchemy(ORM) 기초 - 1탄 초기설정, 데이터 입력하기 다시 정리하는 SQL 알케미 본 내용은 https://fastapi.tiangolo.com/ko/tutorial/sql-databases/ 해당 링크의 설명과 공식문서를 참조하였습니다. 이전에 2021.08.16 - SQLALCHEMY를 이용한 PostgreSQL 사용법 을 정리한적이 있었습니다. SQLALCHEMY를 이용한 PostgreSQL 사용법 SQL 알케미랑 SQL 서버와 연결하는 부분 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker URL = "postgresql://아이디:비밀번호@서버주소/DB이름" engine = create_engine(URL,ech.. jh-industry.tistory.com 기.. 프로그래밍사업/사이드 프로젝트 2022. 7. 4. 더보기 ›› 도커파일 사용법 - 도커를 이용한 FastAPI 서버 구축 방법 관련 정리 기본 컨셉 기본 FastAPI 서버 구성을 위해 우선 구글 클라우드 VM 인스턴스에 도커를 설치하고 VM 인스턴스 로컬저장소에 /code/app 폴더를 만들어서 컨테이너에 바인드 마운트하였습니다. 이렇게 하면 컨테이너에 접속하지 않고도 로컬 폴더(/code/app 폴더)에 있는 파이썬 코드만 수정하면 되어 코드 수정할때마다 컨테이너에 접속하지 않아되어 편리합니다. 기본 순서 1. 구글 클라우드 플래폼에 VM 인스턴스를 만든다. 2. VM 인스턴스에 도커를 설치한다. 3. 도커 파일을 만든다. 4. 도커 파일로 이미지를 생성한다. - 도커 명령어 sudo docker build -t myimage . 5. VM 인스턴스 로컬 저장소에 code/app/ 폴더를 생성하고 main.py 생성 후 폴더로 업로드 .. 프로그래밍사업/도커(docker) 2021. 11. 18. 더보기 ›› [SQL] Postgres에서 중복도 제거하고 다른 컬럼 기준으로 정렬하기(DISTINCT, ORDER BY, subquery SQL(Postgres)로 해보기 //Postgres SELECT * FROM ( SELECT DISTINCT ON (중복을 제거할 컬럼명) * FROM 테이블명 WHERE name='a') as foo ORDER BY id DESC; // 정렬할 컬럼 python SQLAlchemy로 해보기 from sqlalchemy import desc // 중복을 제거한 서브커리를 생성한다. sub_images = db.query(테이블명).distinct(테이블명.컬럼명).filter(테이블명.컬럼명==컬럼에서찾을내용).subquery() // 서브커리를 ORDER BY로 정렬한다. tests = db.query(sub_images).order_by(desc("id")).all() SQLAlchemy에서 서브커.. 프로그래밍사업/사이드 프로젝트 2021. 11. 6. 더보기 ›› 장고(django)보다 쉽게 FastAPI로 간단한 CRUD 만들기 fastapi review 기본 설계 fastapi로 CRUD 구현 postgres를 사용할것임 orm은 SQLALCHEMY 사용할것임 순서 pip install fastapi[all] 패키지 설치 pip install sqlalchemy 패키지 설치 main.py 함수 생성 hello fastapi 구현 fastapi 서버와 postgres 서버 연결 pgAdmin으로 수동으로 DB 생성 postgres와 SQLALCHMY create_engine, sessionmaker 생성 from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative.. 프로그래밍사업/사이드 프로젝트 2021. 10. 30. 더보기 ›› [docker, PostgreSQL ] GCP에 Docker Postgresql 세팅하기 여러 인터넷 글에는 외부 접속을 위해서는 pg_hba.conf 과 postgresql.conf을 수정하라고 되있습니다. 하지만 저 파일을 수정해보아도 안되던 것이 구글 클라우드 플래폼 방화벽을 열어주니 바로 접속이 되네요 방화벽을 열고, 도커 설치하고, Postgres 이미지로 컨테이너를 실행시키면 끝입니다. 접속 준비는 끝입니다. 작업순서 1. GCP VM 인스턴스 생성 - 최근 프리티어가 f1-micro에서 더 좋은 e2-micro로 변경 되었다고 하네요 그래서 그런지 10월 초 f1-micro를 만든 서버에서 과금이 되었더군요 2. 구글 클라우드 플래폼 방화벽 설정 VPC 네트워크 - 방화벽 - 방화벽 규칙만들기 주의 하실점은 해당 인스턴스에 지금 만든 방화벽 규칙이 적용 되야 합니다. ip 범위:.. 프로그래밍사업/도커(docker) 2021. 10. 6. 더보기 ›› 도커 기본 명령어 도커를 사용하면서 제가 주로 사용하는 기본 명령어입니다. 도커 관련 기본 명령 sudo docker pull 이미지명 sudo docker run -v 볼륨명:경로(/app) -n 컨테이너이름 -p 외부포트:내부포트 -e POSTGRES_PASSWORD = 비밀번호 sudo docker attach 컨테이너이름 sudo docker exec -it 컨테이너이름 /bin/bash 도커 볼륨 관련 기본 명령 sudo docker volume create 이름 sudo docker volume ls sudo docker volume inspect 볼륨명 도커 볼륨, 리눅스 관련 볼륨 마운트나 바인드 마운트가 컨테이너 안에 로컬 공간의 파일을 입력하는 것은 같다 바인트 마운트는 그냥 로컬의 파일을 컨테이너안에 .. 프로그래밍사업/도커(docker) 2021. 8. 16. 더보기 ›› SQLALCHEMY를 이용한 PostgreSQL 사용법 SQL 알케미랑 SQL 서버와 연결하는 부분from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker URL = "postgresql://아이디:비밀번호@서버주소/DB이름" engine = create_engine(URL,echo=False) SessionLocal = sessionmaker(autocommit=False, autoflush=True, bind=engine) PostgreSql과 SQLAlchemy를 연결하는 부분입니다. 하지만 이렇게 하면 PostgreSQL 서버에 DB가 자동으로 생기지 않더군요 그래서 할수 없이 그냥 수동으로 DB를 생성한뒤 테이블을 만들었습니다. 좋은 방법이 있으신분을 가르쳐 주시면 감사.. 프로그래밍사업/사이드 프로젝트 2021. 8. 16. 더보기 ›› Fast API를 이용한 인스타그램 크롤러 만들기 컴퓨터에서 파이썬 코드를 작성하여 크롤링 하는 프로그램을 만들어서 혼자 사용하는 것은 쉽다.하지만 프로그램을 만들면 배포하여 어디서든 사용하고 싶은 욕구가 생기기 마련이다.FASTAPI와 구글클라우드플래폼(GCP)를 이용하여 인스타그램 사진을 크롤링 하는 프로젝트를 진행해보았다.결과적으로 80%정도는 만족스러운 결과를 얻었다.나머지 20% 부족한 점은 두가지가 있다.아무래도 실시간으로 인스타그램 크롤링하는 진행사항을 확인할 수 없다.지속적인 크롤링으로 인스타그램에서 아이디와 IP를 차단 당한다.이부분은 time.sleep()으로 딜레이를 줘도 인스타의 차단을 막을순 없었다.아래는 개발 중 이슈가 되었던 것과 해결과정을 작성한것 입니다.인스타그램 크롤링 관련 이슈컴퓨터 사양에 따라 크롤링 성능은 다르다접속.. 프로그래밍사업/사이드 프로젝트 2021. 7. 28. 더보기 ›› [Fast API 정리] 장고(django) 보다 쉽게 간단한 api 서버를 만들어보자 Get, Post 응답 방식 정리 1. FastApi 기본 구현 공식 튜토리얼을 보고 기본적인 get요청과 post요청을 구현하였습니다. path로 인자를 전달하는 방법과 쿼리 방식으로 전달해서 응답을 받는 방식과 주로 로그인을 구현할 때는 쓰는 Post 방식이 있으니 아래 예시 코드를 확인하시면 됩니다 from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() # 기본 Hello API: Get 방식의 응답 # http://127.0.0.1:8000/ 으로 # Get 방식으로 요청하면 hello FastAPI!! 가 리턴됨 @app.get("/") async def helloFastApI(): return "hello FastAPI!!" # path 방식으로 인.. 프로그래밍사업/사이드 프로젝트 2021. 6. 27. 더보기 ›› [docker 예제] 도커를 활용한 우분투(ubuntu 20.04.1) 환경 구축부터 셀레니움(selenium)을 활용한 크롬드라이버 헤드리스( docker를 사용한 우분투 환경 설정 1. docker pull ubuntu 우분투 이미지를 가져옵니다. 2. docker run -i -t /bin/bash 우분투 컨테이너 설치 후 컨테이너 진입 합니다. 3. apt install -y software-properties-common 저도 리눅스를 이번에 처음 해보는것라 이거 먼지는 모르겠지만 대부분의 강의자료에서 설치를 하네요 이것을 설치하고 나면 python 3.8.5 버전이 설치 됩니다. 4. apt install python3-pip pip를 설치 합니다. 이것을 실행하려면 pip3 install pandas 이런식으로 쓰시면 됩니다. 5. apt update apt upgrade 이것도 왠만하면 다 하더군요 여기까지가 도커를 사용하여 기본적.. 프로그래밍사업/도커(docker) 2020. 12. 27. 더보기 ›› 이전 1 2 3 다음