
IT/파이썬 2021. 1. 26.
파이썬 flask mongodb document count 리턴해주기
이 간단한 것도 많이 찾아봐야 하네. 일단 몽고db collection에 있는 검색된 결과의 count를 가져오려면 그냥 .count() 함수를 부르면 되네. 이 결과를 JSON 형태의 리턴을 위해서는 flask 에 있는 jsonify 함수를 쓰면 되고 머 요청된 url 에 "/count" 라고 어미를 달고 들어오면 숫자를 넘겨주고 아니면 다큐먼트 객체들을 JSON으로 변경해서 돌려주는 코드 예제가 되겠다. search = "/count" if search in request.path: return jsonify(count=Result.objects.filter(orderitem=orderitemid).count()) else: result = Result.objects.filter(orderitem=o..

IT/파이썬 2021. 1. 25.
파이썬 flask post 받은 데이터 REST API 로 재 호출하기
웹페이지 폼데이터로 데이터 입력을 받은 이후에, 이미 만들어 놓은 REST API 서버(게이트웨이)에 해당 url를 호출하여 처리하고 싶다. 코드를 여러개 찾아보다가 아래와 같이 성공. 일단 request.form.to_dict() 함수로 form 데이터를 dict 형태로 가져온다음 requests.post 함수를 이용하여 재 호출 한다. 이때 매개변수에 json = dict 변환 객체 를 넣어주는 것이 키가 되겠다. 접속되는 서버의 주소가 변경될 수도 있으니 request.url_root 를 이용해서 접속 url 문자열을 만들어 주는 것도 주의깊에 보자. task = request.form.to_dict(flat=True) # Create a new resource print(request.url_ro..

IT/파이썬 2021. 1. 25.
파이썬 requests 로 POST PUT 처리하기 - Form 데이터 보내기
파이썬 코드로 폼 데이터를 보내 처리하려면, pip install requests 를 통해 requests 를 설치해야 한다. 접속해서 POST, PUT을 처리하는 예제 코드는 아래와 같다. params = { "param1": "test1", "param2": 123, "param3": "한글" } res = requests.post("http://127.0.0.1:5000/handle_post", data=json.dumps(params)) return res.text apt-info.github.io/%EA%B0%9C%EB%B0%9C/python-flask3-post/ (python) flask 3. Post 요청 처리 지난 시간에 이어 Flask로 Post 요청을 처리하는 방법에 대해 알아보겠습니..

IT/파이썬 2021. 1. 25.
파이썬 상속 구조 확인 - 상속된 순서를 보여주는 함수
요건 팁으로 따로 저장한다. 나중에 이것만 찾기는 힘드니 정답은 짠짠 xxxx.mro() 원본 글은 아래에 있다. teddylee777.github.io/python/python-inheritance Python 클래스의 상속 (inheritance) Python 클래스의 상속 (inheritance) 방법에 대하여 알아보겠습니다. teddylee777.github.io 상속 구조 확인 상속의 구조는 클래스명.mro()로 확인할 수 있습니다. 구조는 상속 받은 순서대로 표시됩니다. 모든 class는 object를 상속받기 때문에 항상 object가 마지막에 표기 됩니다. Student.mro() [__main__.Student, __main__.Person, object] BJ. Cole Keister ..

IT/파이썬 2021. 1. 25.
파이썬 람다 함수 - lambda inline function
파이썬 소스 코드에서 lambda 라는 문구가 뵈길래, 또 찾아봄 간단하게 말하면 inline 함수같은 모양새네.. 문법은 lambda [매개변수 리스트] : [구문들...매개변수를 여기서 활용하는 간략한 코드] (lambda x,y: x + y)(10, 20) >> 30 파이썬의 다양한 기능과 합쳐져서, 강력하게 쉽게 사용할 수 있는 예제를 다양하게 찾아볼 수 있다. 겸사 map, filter, reduce 함수 같은 것도 배우자. 많은 소스들 중에서 아래 링크에서 정보를 획득하도록 하자. 잘 정리된 것만 여기에 올린다. ㅋㅋ 원본 링크 글에 많이 가셔서들 보세요. 여기 아래는 내가 나중에 이해가 쉽도록 간략하게 몇개만 가져옴. teddylee777.github.io/python/lambda-map-f..

IT/리눅스 2021. 1. 22.
우분투 리눅스 SSH 접속하기 - 윈도우 환경에서 SSH Key 방식 접속
로그인할때 마다 패스워드 입력하는 거 귀찮기도 하고, SSH RSA 키 방식으로 접속하면 한 번 세팅 이후에 편리해서 시도해 보기로. 먼저 윈도우 환경에 putty 를 설치하면 같이 들어 있는 PuTTYgen을 실행 시키고 아래 버튼 중 Generate 를 누른다. 막 마우스를 옮겨 다니면 랜덤 좌표를 이용해서 키를 하나 만들어 준다. 100% 까지 완성되면 아래와 같이 키가 생성된 창을 볼 수 있다. 생성된 public 키 부분의 텍스트를 열심히 긁어서 일단 아무 파일에 저장해두고, 아래 Save private key를 눌러 자신의 비밀키를 원하는 위치에 저장한다. 창이 뜨면 그냥 확인 누르고 진행하면 된다. 이제 윈도우의 키 준비는 완료된 셈이다. 서버로 가서 아까 복사해둔 공개키 텍스트를 서버에 어..

IT/파이썬 2021. 1. 20.
파이썬 - Flask 모듈을 Gunicorn 을 이용하여 Nginx 에 연동하기 - WSGI 서버
Flask 를 이용해서 파이썬 서비스를 개발했다. 그런데, 실행을 시켜보면 WSGI 서버를 사용해라는 경고가 떡하니 불안하게 만드네... WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. 요는 개발 단계에서 테스트로 flask 서버를 이용해도 무방하지만, 실제 배포 서비스 개시하는 production 단계에서는 WSGI 서버를 사용해라는 것이 요지이다. 아파치나 Nginx 서버에 연동해서 이 flask 모듈을 자동으로 불러 줄 수 있도록 설정해야 한다. 먼저 WSGI 를 설정하려고 찾아보다가 지-유니콘 이라는 모듈을 쓰면 아주 쉽고 성능도 괜찮게 쓸 수 있다는..

IT/파이썬 2021. 1. 20.
파이썬 flask 설정 값 읽어오기 - 파일에서
python flask 실행시에 설정 값을 파일에서 읽어오도록 설정, app.config.from_pyfile('파일명') from_envvar(variable_name) 있던데, 이 예제는 많이 있더라. 구글에서... 실제 설정 파일에는 아래처럼 변수=값 형태로 정보를 저장해 두면 된다. TESTING=False DEBUG=True 실제 mongoDB 설정값을 저장해 둔 예제를 가져와보면 파일 속에, MONGODB_SETTINGS = { # 'host': 'mongodb://localhost/DB이름' # 이런식으로 간단하게 하거나, 아래 처럼 'db': 'DB이름', 'host': '접속IP', 'port': 27017, #접속포트 'username':'아이디', # 접속 권한 아이디 'passwor..

IT/리눅스 2021. 1. 20.
우분투 리눅스 방화벽 설정하기 - ufw 설치 설정
포트가 계속 열리고, 간단하게 테스트하기 위해 코드를 오픈하고 접속하려니 방화벽 설정을 건드리는 부분이 많다. 윈도우는 그냥 어디에 있는 프로그램 띄워서 눈으로 보고 막 해도 되는데, 리눅스는 쩝... 무튼 간단하게 포트 설정을 오픈하고 닫고 할 수 있어서 다행이긴 하다 > sudo ufw enable > sudo ufw disable > sudo ufw reset SSH 포트 열기 sudo ufw allow 22 sudo ufw deny 22 서비스명으로 열기 / 닫기 sudo ufw allow ssh 서비스명은 아래 명령어로 살펴볼 수 있다. less /etc/services 룰 삭제 sudo ufw delete deny 22 아이피 룰 추가 sudo ufw allow from 192.168.0.10..

IT/리눅스 2021. 1. 19.
우분투 리눅스 SSH 서버 설정하기
이것저것 찾아보다, 아래 링크 글이 맘에 드네. jimnong.tistory.com/713 [우분투 16.04] SSH서버 구축하기(SSH 접속 설정) 이 글은 http://studyforus.tistory.com/235 의 내용을 제가 적용하면서 정리하는 겁니다. SSH는... 시큐어 셸(Secure Shell)의 약자입니다. 보안기능이 전제되어 있는 프로토콜이고요, ▲ 기본적으로 (보안이 jimnong.tistory.com 루트 권한으로 접속하는 과정도 설명이 되어 있으니 참고. sudo systemctrl enable sshd.service 이것을 명심하시게, 부팅이후에도 계속 자동으로 데몬이 수행되도록 하려면 ^^ bytefreaks.net/gnulinux/fedora-25-install-star..

IT/리눅스 2021. 1. 18.
우분투 리눅스 파이썬 버전 확인 필수 - 제길 python 2 가 기본이라뉘
윈도우 환경에서 잘 돌아가던 파이썬 코드를 그대로 올려서 기분좋게 run 시켰는데, 제길.... 제목 그대로다. 제길 파이썬 버전 2.x가 기본으로 사용되고 있다뉘....제길제길.. 먼가 설치가 자꾸 에러가 나더라니.. 찾아보니 많은 자료가 있네. 파이썬 버전 변경 방법으로 검색해 보면 된다. mickael-k.tistory.com/92 [Ubuntu] 파이썬(Python) 버전 변경 방법 기본 우분투를 깔고 터미널창을 열고 'python'이란 명령어를 치면 자동으로 python 2.x버전이 잡힙니다. 이번 포스트에서는 리눅스 Alternatives를 활용하여 Python의 기본 default인 2에서 새롭게 3으로 바 mickael-k.tistory.com 머 그러나, 깔끔하게 버전 2.x를 지워보려고..

IT/파이썬 2021. 1. 12.
파이썬 two way referencing in mongoengine - ReferenceField 팁과 문제 해결
아직 선언안된 테이블, 컬렉션 (머라 부르던) 객체를 레퍼런스 하는 필드를 추가하고 싶을때 NameError: name 'XXXX' is not defined 에러가 발생한다. 쉽게 해결하기 위해서는 레퍼런스 할 모델 클래스를 사용하기 전에 선언하면 좋긴한데 두 클랙스 사이에 각자가 각각 레퍼런스 하는 경우도 있기 때문에 순서로 해결하기 어려운 경우가 더 많다. 이중 참조 문제 해결 그런데, 아주 쉽게 해결이 되었다. github.com/MongoEngine/mongoengine/issues/1697 two way referencing in mongoengine · Issue #1697 · MongoEngine/mongoengine Hey i read here about two way referencin..
