Posts

Showing posts with the label kr-dev

파이썬 딕셔너리(dict)의 키(key)들을 모아 리스트 생성 - keys()

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/dict-key-keys 파이썬 딕셔너리(dict)의 키(key)들을 모아서 리스트를 만드는 방법입니다. 딕셔너리의 keys() 함수를 이용합니다. x_dict = {'a':1, 'b':2, 'c':3} x_keys = x_dict.keys() keys() 함수에 의해 반환되는 객체는 dict_keys입니다. 이것을 리스트로 변환합니다. x_list = list(x_keys) print(x_list) ['a', 'b', 'c'] 딕셔너리의 값(value)들을 모아서 리스트로 만들려면 values() 함수를 사용하며, 요령은 같습니다. 아래의 링크를 참고하시기 바랍니다. 파이썬 딕셔너리(dict)의 값(value)들을 모아 리스트 생성 @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 json.dumps()에서 한글 문자열 보존

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/jsondumps 파이썬에서 딕셔너리(dict)를 문자열(str)로 변환할 때 json.dumps() 함수를 활용하게 되는데, 문자열이 한글일 경우 아래와 같이 제대로 표시되지 않을 수 있습니다. import json x_dict = { 'a': '이것은 테스트용 문자열' } x_str = json.dumps(x_dict) print(x_str) {"a": "\uc774\uac83\uc740 \ud14c\uc2a4\ud2b8\uc6a9 \ubb38\uc790\uc5f4"} 한글이 제대로 나오게 하려면 아래와 같이 ensure_ascii 옵션을 False로 지정해야 합니다. x_str = json.dumps(x_dict, ensure_ascii=False) print(x_str) {"a": "이것은 테스트용 문자열"} @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬과 SDS API를 이용해서 특정 계정을 증인 프록시(witness proxy)로 설정한 계정 조회

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/sds-api-witness-proxy SDS API를 이용해서 특정 계정을 증인 프록시로 설정한 계정의 목록을 조회할 수 있습니다. 예를 들어 @avle 계정을 증인 프록시로 설정한 계정들을 조회하려면 아래와 같이 할 수 있습니다. import requests import json steem_id = 'avle' sds_url = 'https://sds.steemworld.org/witnesses_api/getAccountsByWitnessProxy/' + steem_id response = requests.get(sds_url) res_dict = json.loads(response.text) res_list = res_dict["result"] requests.get()을 이용해서 증인 프록시를 조회하기 위한 url에 접속해서 응답을 받아 옵니다. 응답은 json 형식의 문자열인데, json.loads() 함수를 이용해서 딕셔너리(dict) 형식으로 변환합니다. "result" 키(key)에 계정 목록이 있으므로, 위의 예시처럼 해당 키의 값을 가져오면 됩니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avl...

파이썬 beem에서 특정 계정이 소유한 스팀파워 확인

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/04f18-beem 파이썬 beem에서 특정 계정이 소유한 스팀파워를 확인하는 방법입니다. Account 모듈의 get_vests() 함수를 이용합니다. from beem import Steem from beem.account import Account node_list = ["https://api.steemit.com"] s = Steem(node=node_list) a = Account('joviansummer', blockchain_instance=s) my_vests = a.get_vests(only_own_vests=True) get_vests() 함수에서 임대를 받거나 준 스팀파워를 제외하고 본인이 소유한 스팀파워, 즉 자체 스팀파워를 파악하기 위해 only_own_vests=True로 인자를 지정해 줍니다. 반환되어 변수 my_vests에 할당된 결과는 beem에서 제공하는 Amount 객체이며 스팀파워가 아니라 vest값입니다. 이로부터 vest값을 부동소수점 수자(float)로 가져와 스팀파워로 변환을 합니다. 변환은 Steem 객체의 vests_to_sp() 함수를 이용합니다. my_vests_float = my_vests.amount my_sp = s.vests_to_sp(my_vests_float) print(my_sp, "SP") @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 ...

파이썬 딕셔너리에서 숫자(int, float)도 키(key)로 사용 가능

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/int-float-key 파이썬 딕셔너리(dict)의 키(key)는 문자열(str)만 사용해 왔기 때문에 막연하게 키는 문자열을 사용한다고 생각했었는데, 숫자(int, float)도 가능하네요. x = {'a':1.5, 1.2:3, 2:'abc'} print(x[1.2]) 3 위의 예시처럼 문자열, 정수, 부동소수점 다 사용 가능합니다. 하지만 정수를 키로 사용할 경우에는 리스트(list)의 인덱스와 혼동할 가능성도 있어 보입니다. 위의 예에서 x[2]라고 하면 리스트의 인덱스 2번이 아니라 딕셔너리의 키가 2라는 의미가 됩니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 flask에서 html 파일을 응답으로 전송

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/flask-html 파이썬 flask로 구현한 웹앱에서 웹브라우저의 요청을 받고 html 파일을 응답으로 보낼 수 있습니다. flask 모듈의 render_template() 함수를 이용하며, html 파일은 웹앱 스크립트(.py 파일)가 있는 디렉토리 하위에 templates 디렉토리를 만들어서 여기에 저장해야 합니다. 아래의 예시는 templates 디렉토리 하위에 있는 index.html 파일을 이용해서 응답하는 경우입니다. from flask import Flask from flask import render_template app = Flask(__name__) @app.route('/') def root_page(): return render_template('index.html') # 본 스크립트를 import하지 않고 직접 실행할 경우 flask 자체 웹서버 실행(포트 5000) if __name__ == "__main__": app.run(host='127.0.0.1', port=5000) 엄밀히 말하면 html로 구성된 템플릿(template)을 응답하는 것으로, 웹앱 코드 안에서 정의된 데이터를 html 페이지에 표시할 수 있는 것 같습니다. 이 부분은 좀 더 공부를 해 봐야겠습니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀...

파이썬 beem에서 특정 포스트의 보팅 목록 확인

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/2764b6-beem 파이썬 beem에서 특정 포스트에 누가 얼만큼 보팅했는지 확인하는 방법입니다. 보팅 목록은 Comment 객체에서 "active_votes" 키(key)에 할당된 데이터를 조회하면 됩니다. 예시를 보자면 아래와 같습니다. from beem import Steem from beem.comment import Comment node_list = ['https://api.steemit.com'] steem = Steem(node=node_list) authorperm = 'joviansummer/b01bb' comment = Comment(authorperm, blockchain_instance=steem) for v_info in comment['active_votes']: print("voter:", v_info['voter'], ", rshares:", v_info['rshares']) 위의 예시에서 comment['active_votes']에는 보팅 목록이 리스트(list) 형식으로 할당되어 있으며, 각 원소는 딕셔너리(dict) 형식입니다. 원소의 "voter" 키에는 보팅한 계정이 할당되어 있고 "rshares" 키에는 보팅 분량이 할당되어 있습니다. 리스트 예시를 보자면 아래와 같습니다. [{'voter': 'gerber', 'rshares': 53606309}, {'voter': 'ezzy', 'rshares': 37690507983}, ..., {'voter': 'princesslayla...

파이썬의 간단한 웹(http) 서버

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/http 파일을 간단하게 공유하고 싶을 때 파이썬에서 제공하는 간단한 웹서버를 활용할 수 있습니다. 공유하고 싶은 디렉토리로 간 후에 http.server 모듈을 실행하면 됩니다. 리눅스의 경우 아래와 같이 할 수 있습니다. cd ~/shared_files python3 -m http.server 5001 위와 같이 하면 홈디렉토리 하위의 shared_files 디렉토리의 파일을 공유할 수 있는 웹서버가 실행되며, 포트번호는 5001번이 됩니다. 제대로 동작하는지는 웹브라우저에서 http://localhost:5001에 접속해 보면 확인할 수 있겠습니다. 단순 파일 공유 기능인데, 집에서 이쪽 기기에서 저쪽 기기로 파일을 옮기고 싶을 때 편리하네요. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

pythonanywhere.com에 파이썬 flask 웹앱 호스팅 예시

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/pythonanywherecom-flask 무료로 파이썬 웹앱을 호스팅할 수 있는 pythonanywhere.com에 대한 소개는 이전에 포스팅했습니다. 아래의 링크입니다. 무료 파이썬 호스팅 - pythonanywhere.com 파이썬 flask를 이용하는 웹앱을 pythonanywhere에 호스팅하는 설명 자료입니다. 영문이긴 하지만 참고할 만한 것 같아서 기록해 둡니다. 아래의 링크입니다. https://pythonhow.com/python-tutorial/flask/deploy-flask-web-app-pythonanywhere/ pythonanywhere 웹사이트의 도움말 페이지에도 flask 웹앱에 대한 안내가 있습니다. 아래의 링크입니다. https://help.pythonanywhere.com/pages/Flask @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬에서 예외(exception) 발생 메시지를 문자열로 가져오기 - traceback

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/exception-traceback 파이썬에서 예외가 발생했을 경우 이를 출력하는 방법은 traceback.print_exc() 함수를 이용합니다. 관련 내용은 아래의 링크입니다. 파이썬의 try - except 구문에서 오류 메시지 출력(traceback) 오류 메시지를 출력하는 대신 문자열(string) 형식으로 변수에 저장하고 싶다면 traceback.format_exc() 함수를 사용하면 됩니다. import traceback try: x = 100/0 except: print("예외가 발생했습니다.") # 오류 메시지를 문자열 형식으로 exc_str 변수에 저장 exc_str = traceback.format_exc() print(exc_str) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬에서 마크다운(markdown) 문자열을 html로 변환

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/markdown-html 파이썬에서 python-markdown을 이용해서 마크다운 문자열을 html로 바꿀 수 있습니다. python-markdown 설명서 웹사이트는 아래의 링크입니다. https://python-markdown.github.io/reference/ 우선 마크다운 모듈을 설치해야 합니다. pip3 install markdown 이제 마크 다운 문자열을 html로 바꿀 수 있습니다. 아래의 예시를 보면 금방 알 수 있습니다. import markdown markdown_str = '**Hello World!**' html_str = markdown.markdown(markdown_str) print(html_str) \ \ Hello World!\ \ 코드 블럭 등 부가적인 마크다운 문법에 대한 처리를 위해서는 아래와 같이 확장(extension) 옵션을 지정합니다. html_str = markdown.markdown(markdown_str, extensions=['extra']) 일단 extra를 추가하면 기본적인 변환에는 크게 문제가 없을 것 같습니다. 지원하는 확장 목록은 아래의 링크에서 확인할 수 있습니다. https://python-markdown.github.io/extensions/ @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 ...

파이썬에서 파일이 마지막으로 수정된 시점 확인하기 - os.path.getmtime()

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/ospathgetmtime 파이썬에서 특정 파일이 마지막으로 수정된 시점을 확인하려면 os.path.getmtime() 함수를 사용할 수 있습니다. 예시를 보자면 아래와 같습니다. import os m_time = os.path.getmtime('my_file.txt') 위의 예시는 my_file.txt 파일의 마지막 수정 시점을 구해서 변수 m_time에 할당하는 경우입니다. 형식은 부동소수점수자(float)이며, 유닉스 타임스탬프 형식으로 가져옵니다. 출력해 보면 아래와 같이 될 것입니다. print(m_time) 1662183247.925591 @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬에서 리스트의 길이를 일정하게 유지하는 예시(오래된 원소 제거)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/ca5472 파이썬에서 리스트에 원소를 추가하면서 일정 길이를 넘지 않도록 가장 오래된 원소를 제거하는 예시입니다. 리스트 길이, 즉 원소의 수가 3을 넘지 않도록 하면서 원소를 추가하는 함수를 아래와 같이 만들어 볼 수 있습니다. MY_LIST = [] MAX_LEN = 3 def add_item(item): global MY_LIST if len(MY_LIST) == MAX_LEN: MY_LIST.pop(0) MY_LIST.append(item) 변수 MY_LIST의 길이가 3이 되면 인덱스 0의 원소를 제거하고, 새로 추가할 원소를 append() 함수를 이용해서 가장 마지막 인덱스에 추가되도록 합니다. 아래와 같이 수자 0~4를 차례로 추가하는 경우를 보면, 길이를 3 이하로 유지하기 때문에 처음에 추가했던 0과 1을 제거되고 MY_LIST는 [2, 3, 4] 이렇게 됩니다. for i in range(5): add_item(i) print(MY_LIST) @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )

파이썬 waitress 웹서버(flask와 연동 가능)

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/waitress-flask 파이썬 flask에서 Flask 객체의 run() 함수를 호출하면 웹서버가 구동됩니다. 이 웹서버는 디버깅을 목적으로 구현된 것이라고 합니다. 성능이나 보안 측면에서 취약하기 때문에 실제로 인터넷에 공개할 웹서버에 대해서는 사용하지 않아야 한다고 합니다. 그래서 어떻게 할 것인가 좀 찾아보니, flask와 연동해서 구동할 수 있는 별도의 웹서버 모듈이 있네요. waitress라는 파이썬 모듈입니다. 우분투 계열 리눅스의 경우 아래와 같이 python3-waitress 패키지를 설치합니다. sudo apt-get install python3-waitress 만약 flask를 이용해서 작성한 웹 앱 스크립트가 test.py라면, 같은 디렉토리에 server.py 스크립트를 아래와 같은 내용으로 만들어 줄 수 있습니다. from waitress import serve # test.py 사용 import test serve(test.app, host='127.0.0.1', port=5000) 위와 같이 작성한 후, test.py가 아니라 server.py를 실행하여 test.py에 작성된 웹 앱을 구동합니다. test.py 스크립트를 import할 때는 flask 자체 웹서버가 구동되지 않아야 하므로 run() 함수가 실행되면 안됩니다. 이런 이유로 test.py 스크립트에서 자체 웹서버 구동과 관련된 내용은 아래와 같은 형태로 작성되어야 합니다. from flask import Flask app = Flask(__name__) ... if __name__ == "__main__": app.run(host='127.0.0.1', port=5000) waitress 모듈의 설명서는 아래의 링크입니다. https://docs.pylon...

파이썬 flask에서 응답 종류(mimetype) 지정

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/flask-mimetype 파이썬 flask에서 접속 요청에 대한 응답을 보낼 때 종류(mimetype)을 지정하는 방법입니다. Response 객체를 이용하면 됩니다. 예제를 보겠습니다. from flask import Flask from flask import Response app = Flask(__name__) @app.route('/') def root_page(): return Response('<b>hello world!</b>', mimetype='text/html') @app.route('/test/') def test_page(): return Response('test', mimetype='text/plain') if __name__ == "__main__": app.run(host='127.0.0.1', port=5000) 출력할 페이지를 반환(return)할 때 Response 객체를 이용해서 "hello world!" 출력은 html 형식(text/html), "test" 출력은 일반 텍스트(text/plain)라고 지정해 주었습니다. 웹브라우저에게 데이터 형식을 알려주면 응답을 화면에 표시할 것인지 다운로드할 것인지를 좀 더 정확하게 판단할 수 있겠죠. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션...

파이썬 flask로 hello world 웹페이지 작성

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/flask-hello-world 파이썬 flask로 간단한 웹페이지를 만드는 예시입니다. 우선 flask 모듈을 설치합니다. 우분투 계열 리눅스의 경우 아래와 같이 python3-flask 패키지를 설치해 주면 됩니다. sudo apt-get install python3-flask 예제 코드는 매우 간단합니다. from flask import Flask app = Flask(__name__) @app.route('/') def root_page(): return "hello world!" @app.route('/test/') def test_page(): return "test" # 본 스크립트를 import하지 않고 직접 실행할 경우 flask 자체 웹서버 실행(포트 5000) if __name__ == "__main__": app.run(host='127.0.0.1', port=5000) 위와 같은 스크립트를 실행하면 웹서버가 구동되어 루프백(loopback) 주소(127.0.0.1)의 5000번 포트를 열게 됩니다. 루트 페이지(http://localhost:5000/)에 접속하면 문자열 "hello world!"가 표시되고, 테스트 페이지(http://localhost:5000/test/)에 접속하면 문자열 "test"가 표시됩니다. 어떤 페이지에 접속하면 어떤 내용을 표시해 줄 것인지를 위와 같이 함수를 정의하고 데코레이터(decorator)를 이용해서 웹 앱의 route() 함수가 해당 함수를 받아서 처리합니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://...

파이썬에서 xml 원소에 문자열(text) 추가/변경

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/xml-text 이전 포스트에서 예시로 사용했던 xml 파일 일부를 가져와 보면 아래와 같습니다. <?xml version="1.0"?> <data> <student name="Bob"> <math score="95"></math> <physics score="90"></physics> </student> ... 예를 들어서 Bob의 수학 점수 원소에 대해서 성적 등급을 "A+" 이런 식으로 문자열로 추가하고 싶다고 해 보겠습니다. 즉, 위의 예시에 math 태그를 아래와 같이 변경하고자 합니다. <math score="95">A+</math> 이렇게 하려면 아래와 같이 해당 원소를 찾은 후, 문자열을 지정해 주면 되겠습니다. 이미 문자열이 있을 경우 덮어쓰기가 되므로, 문자열 변경에도 동일한 방법을 사용합니다. math_element = root.find("./student/[@name='Bob']/math") math_element.text = 'A+' @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT -...

파이썬에서 xml 원소의 특정 속성(attrib)값 수정

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/af2f9a-xml-attrib 파이썬에서 xml 원소의 속성(attrib)값을 수정하는 방법입니다. 이전에 작성한 포스트에서 이어지는 내용입니다. 관련 포스트는 아래의 링크입니다. 파이썬에서 xml 원소의 특정 속성(attrib) 검색 예를 들어 student 태그에서 name 속성의 값이 Alice의 수학 점수를 변경하고 싶다면 아래와 같이 할 수 있겠습니다. find() 함수로 해당 원소를 찾은 후, set() 함수로 변경합니다. search_math_res = root.find("./student/[@name='Alice']/math") print(search_math_res.attrb) {'score': '91'} 해당 원소의 속성 딕셔너리의 키(key)와 값(value)을 아래와 같이 set(key, value) 형태로 지정하여 변경할 수 있습니다. search_math_res.set('score', '92') new_res = root.find("./student/[@name='Alice']/math") print(new_res.attrib) {'score': '92'} @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT ...

파이썬에서 xml 원소의 특정 속성(attrib) 검색

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/xml-attrib 파이썬에서 xml 파일에 대해 특정 속성을 지닌 원소 검색을 해 보겠습니다. test.xml 파일의 내용은 아래와 같습니다. <?xml version="1.0"?> <data> <student name="Bob"> <math score="95"></math> <physics score="90"></physics> </student> <student name="Alice"> <math score="91"></math> <physics score="97"></physics> </student> </data> 예를 들어 루트 하위에 있는 student 태그의 속성 name 값이 Bob인 원소를 찾고 싶다면 아래와 같이 할 수 있습니다. search_name_res = root.find("./student/[@name='Bob']) print(search_name_res.attrib) {'name': 'Bob'} 만약 Bob의 수학 점수를 찾고 싶다면 아래와 같이 할 수 있겠습니다. search_math_res = root.find("./student/[@name='Bob']/math") print(search_math_res.tag, search_math_res.attrib) math {'score': '95'} @joviansummer의 스팀 프로젝트 스팀...

vercel.com에 파이썬 flask 웹 앱 호스팅 예시 - 2

by joviansummer original STEEMIT post: https://steemit.com/blog/@joviansummer/vercelcom-flask-2 얼마전에 vercel.com에 파이선 flask로 개발한 웹 앱을 호스팅하는 예시를 발견해서 포스팅했습니다. 아래의 링크입니다. vercel.com에 파이썬 flask 웹 앱 호스팅 예시 예시를 하나 더 찾았기에 기록해 둡니다. 첫번째 예시와 마찬가지로 영어이긴 하지만, 참고가 될 듯합니다. 아래의 링크입니다. https://andrewbaisden.medium.com/how-to-deploy-a-python-flask-app-to-vercel-ff4a63d312f4 여전히 매우 간단한 웹 앱이긴 하지만, 첫번째로 포스팅했던 예시 보다는 조금 더 그럴듯한(?) 예시인 것 같습니다. @joviansummer의 스팀 프로젝트 스팀 증인노드를 운영중입니다. @jswit에 증인투표해 주시면 감사하겠습니다. ( https://steemitwallet.com/~witnesses ) jswit 증인 노드 프로젝트를 시작합니다. jsup 업보팅(upvoting) 서비스 소개 jsup 수혜자 지정 기능 추가 jsup 서비스에 큐레이션 보상 분배 기능이 추가되었습니다. jSTEEM 프로젝트 - 텔레그램 챗봇으로 구현하는 스팀 블럭체인 탐색기 STEEM.NFT - 디지털 아트 보존 프로젝트 Posted through the AVLE Dapp ( https://avle.io )