IT/파이썬 2021. 2. 13.
파이썬 flask Response JSON 리스트로 내보내기
파이썬 flask Response JSON 리스트로 내보내기 이거 쉬운데, 막상 해보고 고생해서 작성해둠음... JSON 의 리스트로 보내려고 하니 막 오류가 많이 떠서 고생 무튼 정답은 아래 일단, 스트링의 리스트로 만든다음 리스트 통째로 json.dumps(리스트) 를 이용해서 JSON 객체들의 리스트 형태로 리턴해 줄 수 있다. import json resultJSONt = [{"count": result.count()}] resultJSON = json.dumps(resultJSONt) print(resultJSON) # result = Customer.objects().to_json() return Response(resultJSON, mimetype="application/json", stat..
IT/파이썬 2021. 2. 13.
파이썬 MongoDB 결과 페이지 단위로 나눠보기
찾아낸 결과가 엄청 많아서 페이지 단위로 접근하고 싶다면, 아래 쿼리를 꼭 배우세요~ db.orders.find().sort( { "_id": -1 } ).skip((page-1)*2).limit(2); 길게 보이지만, 원하는 결과를 찾아서, 정렬하고, 앞에 부분을 원하는 개수만큼 스킵하고, 제한된 숫자로 가져오고 그래도 모르면 쓸 수 없다는....자세한 내용은 아래 원본 글을 참고합시다. 글 저자 보호~~ velopert.com/516 [MongoDB] 강좌 4편 find() 메소드 활용 – sort(), limit(), skip() | VELOPERT.LOG 이번 강좌에선 find() 메소드를 더욱 더 활용하기 위해 필요한 sort(), limit(), skip() 메소드에 대해 배워보겠습니다. 그냥..
IT/파이썬 2021. 2. 9.
파이썬 - python -m venv fails: returned non-zero exit status 1
말도 안되는 에러가 많은게 파이썬이다. 워낙 버전이 지저분해서 잘 되던 것도 이렇게 에러가 난다. python -m venv fails: returned non-zero exit status 1 무튼 해결책은 이렇게 > python -m venv .venv --without-pip 뒤에 --without-pip 옵션을 적어주는 것이 핵심포인트!! 문제는 pip 가 가상환경에 설치되지 않는다는 것!!!! ㅎㅎ 이게 문제일듯한데. 가상환경은 생기니깐 일단 저장해둠 community.intel.com/t5/Intel-Distribution-for-Python/python-m-venv-fails-returned-non-zero-exit-status-1/td-p/1156751 python -m venv fails..
IT/파이썬 2021. 2. 2.
파이썬 pyqt5 pyside2 윈도우 창 상태 - maximized 확인
현재 창의 상태가 최대창 상태인지 알 수 있는 방법 흐흐 너무 쉽다. 아래 코드에서 self.isMaximized() 함수를 부르면 당장 알 수 있다. 이런 방법을 이용해서 F11 키를 누르면 창을 최대화 하고 ESC를 누르면 창을 닫는 간단한 코드를 아래에서 살펴보세요. def keyPressEvent(self, e): if e.key() == QtCore.Qt.Key_Escape: self.close() if e.key() == QtCore.Qt.Key_F11: if self.isMaximized(): self.showNormal() else: self.showMaximized() 이 예제 코드는 아래 글에서 가져왔습니다. stackoverflow.com/questions/14726296/how-to..
IT/파이썬 2021. 2. 2.
파이썬 JSON 읽기 에서 특정 키 가 있는지 먼저 확인하기
JSON을 읽기는 했는데, 원하는 키 가 있는지 부터 체크하고 싶다면 .get 함수를 이용하도록 하자. 아니면 KeyError: '원하는키' 를 만나게 되어서 로직으로 처리하기 어렵다. 아래처럼 JSON을 읽을 값을 self.config 에 저장해 두고 창 위치를 조정하고자 하는데 저장된 JSON 파일내에 내가 원하는 'height' 라는 키 값 자체가 있는지 모를때, 혹은 그때 기본값을 적용하고 싶다면 해당 키가 있는지 부터 조사해 내야 한다. .get('원하는키') 함수로 쉽게 이를 구현할 수 있다. 아래 코드를 참고하세요. if (self.config['Last].get('height')): startSize = QSize(self.config['Last']['width'], self.config[..
IT/파이썬 2021. 2. 2.
파이썬 JSON 파일 읽고 쓰기
JSON 파일 형태로 config 를 처리하는 작업을 하는 것을 하다 보니 읽고 쓸 일이 있네. 간략하게 정리해둬 보자. 일단 JSON 파일을 아래 처럼 만들어 보았다. { "System": { "version": "1.0.0", }, } 이걸 읽어서 버전을 찍어주도록 하는 코드 예제는 아래와 같다. self.config 에 읽은 정보가 다 들어오고, 배열, dict 형태로 접근해서 정보를 읽고 쓰면 된다. 업데이트는 아래 updateConfig 처럼 그냥 파일 열어서 JSON 객체를 json.dump로 쓰면 된다. 여기서 indent =4 를 주면 보기 좋게 되고, 안주면 쭉 붙여서 일렬로 문자열이 저장된다. 취향따라 하면 된다. import os import json ... def readConfig..
IT/파이썬 2021. 2. 2.
파이썬 윈도우 크기와 포지션 정보 가져오기 및 세팅하기
파이썬 윈도우 크기와 위치를 저장해 뒀다가 새로 시작할 때 가져올려 몇가지 검색.. 그런데 너무 쉽게 되어 있어서 쓸 게 없을 정도. 왜 딱 바로 안찾아 지는지 모르지만 QMainWindow 에서 만든 파이썬 응용 같으면 아주 쉽다. close 할때 이벤트에서 아래 정보를 저장하는 코드이다. 위치는 간단하게 .x(), .y() 크기도 간단하게 .width(), .height() 로 아주 손쉽게 정보를 가져올 수 있다. # close event 처리 def closeEvent(self, ev): if QMessageBox.question(self, 'Closing', 'Really close?') == QMessageBox.Yes: # # 이상하게 사이즈가 2px 크게 나오네.. # width = self..
IT/파이썬 2021. 2. 1.
파이썬 Qt Designer 에서 Layout stretch 옵션 값 설정
Vertical layout 이나 Horizontal Layout 을 놓고 레이아웃을 설정하다 보면 LayoutStretch 라는 속성을 설정하도록 되어 있다. 의미가 무엇인지? 간략하게 설명해 주는 곳이 없어 간단하게 기록해 둔다. 예제에 숫자로 1,2 로 적어 뒀다. 물론 여기에 적용된 Layout 은 수평으로 2개 있는 프레임의 형태이다. 숫자의 의미는 아래 그림처럼 비율로 보면 되겠다. 초기 비율로 잡아주고, 창이 커지거나 작아지더라도 해당 비율로 움직이는 듯 하다. 간단하게 정리 끝. BJ.
IT/파이썬 2021. 1. 28.
파이썬 리소스 파일 py 파일로 변환하기 - pyside2 rcc
qrc 파일이라고, 프로젝트에 쓰이는 아이콘 파일들의 정보를 저장하는 파일이 있다. 형태는 대략 아래와 같다. (실제 파일은 프로젝트 폴더 밑에 icons 폴더 아래에 두면 되겠죠? :) ) icons/play.png icons/pause.png icons/stop.png 이를 python code에서 불러 쓰기 위해 uic 로 ui 파일 변환해서 쓰듯이 rcc 로 리소스 파일을 py code 로 변환해서 사용해야 한다. (pyside2를 사용하고 있으므로 rcc 명령이름은 pyside2-rcc 네요.) pyside2-rcc icons.qrc -o rc_icons.py 그리고 사용할 파이썬 코드 위에 import 해서 사용하면 된다. import rc_icons stopIcon = QIcon(QPixma..
IT/DB 2021. 1. 27.
MongoDB Compass 이용시 연결 문자열 MongoDB GUI 도구
요거요거, 간단한데 갑자기 생각이 안나서 찾아본다. mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin 간략하게는 아래 내용보고 자신에게 맞게 수정해서 쓰면 된다. mongodb://아이디:패스워드@MongoDB서버주소:포트넘버/ 아니면 정보를 넣는 화면을 띄워서 접속해도 된다. 아래 글을 참고하세요. fici.tistory.com/17 MongoDB) MongoDB GUI 도구 : MongoDB Compass MongoDB Compass는 MongoDB를 분석하는데 쓰이는 GUI 환경의 클라이언트이며, 공식 MongoDB에서 배포하고 있습니다. 저는 가벼운 작업(쿼리 테스트, DB 데이터 확인 등)을 ..
IT/파이썬 2021. 1. 27.
파이썬 Qt Designer 로 원 모양 진행바 만들어보기
QFrame 배경에 원모양의 색깔이 진행처럼 보이게 배경 프레임을 하나 만들어야 한다. 이걸 위해서 qconicalgradient() style 을 이용하는데, 간단하게 나중에 기억나도록만 요점 정리 일단 유튜브 보고 따라 해보니 아래와 같은 스타일 코드가 나오게 된다. 일단 전체 프레임 하나 놓고, 사이즈는 220 으로 하고 안에 또 프레임 하나 더 놓고, 사이즈는 200 으로 해서 가운데 둔다. 사이즈가 중요하다. 둥근 원으로 보이게 하려면 이 사이즈의 반 사이즈로 border-radius 를 적어두면 된다. 아래 예제는 100으로 하면 된다. QFrame { border-radius:100px; background-color: qconicalgradient(cx:0.5, cy:0.5, angle:9..
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..