본문 바로가기

개발 이야기/Python9

Docker compose로 Nginx + Flask + uwsgi 배포 Docker compose로 Nginx + Flask(uwsgi로 실행) 환경을 배포하는 방법을 정리합니다. 전체소스 : https://github.com/kjcaway/nginx_flask_test kjcaway/nginx_flask_test nginx + flask docker compose test. Contribute to kjcaway/nginx_flask_test development by creating an account on GitHub. github.com 먼저 패키지 구조는 아래와 같습니다. ├── docker-compose.yml ├── flask │ ├── Dockerfile │ ├── src │ │ ├── run.py │ │ └── webapp │ │ ├── __init__.py.. 2019. 10. 19.
Selenium 네이버 로그인 + Beautifulsoup 나의 메일 리스트 Python의 브라우저 자동화 라이브러리인 Selenium으로 네이버 로그인과 Html 문서 파싱에 쓰이는 Beautifulsoup를 사용한 메일리스트를 가져오는 작업을 해보겠습니다. 테스트 환경은 python 3.7.2입니다. 01. 관련 패키지 설치 1 2 3 4 5 6 7 $$ pip install selenium $$ pip install beautifulsoup4 $$ pip freeze beautifulsoup4==4.8.0 selenium==3.141.0 soupsieve==1.9.2 urllib3==1.25.3 cs 02. 로그인 창 띄우기 네이버(https://naver.com)에서 메일을 클릭해봅시다. URL을 확인 해보니 아래와 같습니다. https://nid.naver.com/nid.. 2019. 8. 4.
Python으로 웹 크롤링(Crawling ) 요즘 업무를 자동화 하는것에 꽂혀있어서 그런지.. 웹 크롤링(Web Crawling)에 관심이 생겼습니다. 웹 크롤링(Crawling)이란 다른말로 웹 스크랩핑(Scraping)이라고도 합니다. 말그대로 웹사이트를 스크랩(?)하는 작업으로.. 특정 웹사이트에서 특정정보를 잘라와 모으는 것입니다. 어릴적에 숙제로 신문 스크랩하던게 떠오르네요. 크롤링이라고 검색해보면 많은 예제들이 있습니다. 다루는데 있어서 편리한 언어인 Python으로 웹크롤링을 한번 해보도록하겠습니다. 네이버 검색어 Top10을 가져와 보는 예제입니다. 사용할 라이브러리는 아래와 같습니다. - requests : http요청을 간편하게 다룰수 있게 도와주는 라이브러리입니다. - BeautifulSoup : 웹문서를 쉽게 파싱하고 원하는 .. 2019. 7. 19.
Python Script 작성시 argument 여러개 받기 회사 업무 효율을 위해서 이런저런 스크립트를 짜곤합니다. 그중 파이썬을 애용하는데요. 작성하기 편하고, 모듈도 잘 만들어 져있어서 잘만 쓰면 너무 좋은 언어인듯합니다. 파이썬으로 스크립트 작성 시 argument에 대한 처리 할 때 아래와 같이 하곤 합니다. # Python 3.7 # file : script.py # author : blabla import sys if __name__ == '__main__': argument = sys.argv del argument[0]# 첫번째 인자는 script.py 즉 실행시킨 파일명이 되기 때문에 지운다 print('Argument : {}'.format(argument)) 위 스크립트를 실행 해보면 아래와 같은 실행결과를 얻을 수 있습니다. PS C:\my.. 2019. 7. 16.
Selenium으로 웹브라우저 테스트 자동화 요즘 회사에서 일하다 보면 무언가 자동화 하고 싶은 작업들이 간간히 생깁니다. 특히 웹을 통한 단순 반복 작업(?)과 같은 것들은 따분하고 재미없어서 후딱후딱 해버리고 싶습니다. 자동화에 대해서 검색하던 중 Selenium이라는 것을 알게 되었습니다. 브라우저를 자동화하는 일종의 라이브러리입니다.. 주로 웹어플리케이션 테스트 자동화에 쓰이구요. 하지만 웹 기반 관리 작업을 자동화하는데도 사용 될 수 있다고 합니다. Selenium 어떻게 사용하는지 몇가지 케이스를 중심으로 소개해봅니다. 01. 준비(라이브러리 및 프로그램 설치)일단 파이썬으로 진행 할 것입니다. OS는 windows 10 입니다. 브라우저는 Chrome을 사용합니다.파이썬은 미리 설치를 했구요. 12PS C:\> python --vers.. 2019. 3. 16.
Python_bson을 json으로 바꾸는 방법 bson이란 Binary JSON의 약어로 Binary로 인코딩 된 JSON을 뜻한다. MongoDB에서 document가 BSON 형태로 저장되고 (마찬가지로 pymongo 같은 라이브러리로 document를 조회해보면 BSON으로 반환 된다.) json으로 바꾸려면 bson.json_util을 사용하면 된다. 1234567891011121314151617181920212223242526272829303132333435from pymongo import MongoClientimport tracebackfrom bson.json_util import dumps host = 'localhost'port = 27017 def main(): try: client = MongoClient( host=host, .. 2019. 2. 14.
Python_pymongo 간단 사용법 Python으로 Mongodb를 커넥션하여 사용할 때 가장 많이 사용하는 라이브러리가 바로 pymongo이다.mongodb 기능을 많이 사용 할 수 있고(Index, Aggregate, ClientSession과 Transaction 등등)문서도 잘 정리되어 있는 편이다. https://api.mongodb.com/python/current/ 01. pip 명령어로 pymongo 설치아래 명령어로 설치 할 수 있다.1python -m pip install pymongocs * 공식문서에 보면 bson 패키지 설치하지 말라고 한다. pymongo가 기본적으로 bson 패키지를 내포하고 있고, 만약 설치하게 되면 서드파티 모듈 의존성 문제가 생길수 있다고 한다. 02. 코드 작성간단하게 아래와 같은 코드를 .. 2019. 2. 12.
Python_Flask app에서 filter 만들기 Jinja2 템플릿에 날짜를 표현 하고 싶다면?또한 특정 포맷으로 일치 시키고 app단에서 공통 모듈로서 사용하고 싶다면? filter를 만들면 된다. (jinja2에서 지원하는 기본 필터들이 많은 걸로 알고 있다만...) 먼저 filter를 모아둘 소스파일을 따로 만들어보자. (굳이 따로 안만들어도 된다만... 기능별로 묶는걸 습관화 하려고 ㅎㅎ) ./filter.py123456import babel def format_datetime(value, format='yyyy-MM-dd HH:mm:ss'): return babel.dates.format_datetime(value, format) Colored by Color Scriptercs 1. babel을 import2. 사용하고자 할 필터 함수를 등.. 2018. 11. 26.
Python_mongoengine 사용 mongodb 익히려고 python프로젝트에 한번 써보았다.pymongo가 좀 인기 있는거 같은데 mongoengine을 한번 써보자. 더 쓰기 간편한 것 같기도하고... https://github.com/MongoEngine/mongoengine 위의 사이트 접속해보면 Object-Document-Mapper 라는게 눈에 띈다.ORM을 쉽게 적용할 수 있게 해주는 파이선 모듈 같았다. 일단 한번 써보도록하장! 1234567891011121314from mongoengine import *from datetime import datetimefrom .. import config connect('connect1', host='mongodb://' + config['mongodb_host'] + ':' + .. 2018. 11. 10.