반응형

Python 3.7 버전을 사용하고 있는 도중 Sqlite3 를 사용하게 되었는 데, Parameterized Query(매개변수 쿼리)를 사용하는 도중


sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100))

ValueError: parameters are of unsupported type


이런 오류가 발생하였다.

레퍼런스를 찾아보니 https://docs.python.org/2/library/sqlite3.html

아래와 같이 사용해야 된다.

sql = "SELECT name FROM test WHERE id=?"
self.cur.execute(sql, (100,))


반응형
반응형

 

slacker를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 순수하게 메세지만 보낼 예정이라면 아래의 웹훅을 추천한다.(봇을 이용하면 슬랙이 무거워짐),

슬랙에 봇을 추가 및 만드는 방법은 아래의 slackclient를 이용한 파이썬 슬랙봇 만들기에 나와있다.

 

- 파이썬 웹훅으로 만들기

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- slackclient를 이용한 파이썬 슬랙봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. slacker를 설치한다.

 

pip install slacker

 

 

2. 토큰을 발급받는다.

 

반응형
from slacker import Slacker  slack_token = '토큰'  #위에 발급받은 토큰을 적으면 됨. slack = Slacker(slack_token) slack.chat.post_message('#channel', '메세지') #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

위 소스를 실행하면 알아서 메세지가 잘 전달된다.

 

메세지를 예쁘게 보내고 싶으면

slack api 문서 - https://api.slack.com/docs/message-attachments 문서에서 attachments라고 나와 있는 것을 딕셔너리를 이용하여 보내면 된다.

 

dic = {"title": "Slack API Documentation", "color" : "#2eb886" }  attachments = [dic]  slack.chat.post_message('#channel', '메세지', attachments=attachments) #채널자리에 슬랙에 있는 채널을 적으면 됨. 

 

반응형
반응형

 

slackclient를 이용한 파이썬 슬랙 봇을 만드는 방법이다. 

순수하게 메세지만 보내고 싶다면 아래의 파이썬 웹훅 게시글을 보면되고

 

slackclient의 메세지를 예쁘게 보내고 싶다면 이 글을 보고 아래의 slacker로 파이썬 슬랙 봇 만들기를 보면 된다.

 

- 파이썬 웹훅으로 만들기.

2018/11/03 - [Python] - Python Slack WebHook (파이썬 슬랙 웹훅) 만들기

 

- 파이썬 slacker로 파이썬 슬랙 봇 만들기

2018/11/03 - [Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

 

1. https://api.slack.com 에 접속한 뒤, Your Apps에 들어간다.

 

 

 

2. Your Apps에 접속하면 아래와 같은 창이 바로 보이며, Create an App을 클릭한다.

 

 

 

3. 이름을 짓고 사용할 워크스페이스를 고른다.

 

 

4. BotUser를 등록한다.

 

 

 

5. 왼쪽의 OAuth & Permissions에 들어가서 bot을 install workspace를 하게되면 OAuth Token을 발급받게 되고 봇이 Slack에 추가된다.

그리고 Bot User OAuth Access Token을 복사한다.

 

 

 

 

반응형

 

6. Slack에서 봇을 사용할 채널에 /invite 명령어로 봇을 추가한다.

 

7. https://api.slack.com/tutorials/tags/python 사이트에 접속해서 사용 방법을 터득 하면되며,

대표적으로 How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)에 접속한다.

(소스 파일 : https://github.com/mattmakai/slack-starterbot/blob/master/starterbot.py)

 

소스를 대충 설명하자면, 

 

 

 

# instantiate Slack client slack_client = SlackClient(os.environ.get('SLACK_BOT_TOKEN')) #os.environ.get부분을 다 지우고 아까 복사한 token을 붙여넣는다. # starterbot's user ID in Slack: value is assigned after the bot starts up starterbot_id = None #----------------------------------- def handle_command(command, channel): #이 메소드에서 슬랙에서 받은 메세지를 처리한다. #----------------------------------- while True: command, channel = parse_bot_commands(slack_client.rtm_read()) if command: handle_command(command, channel) time.sleep(RTM_READ_DELAY) #TCP통신처럼 여기서 메세지 받는 것을 대기한다.

 

튜토리얼에서 워낙 잘 나와 있기 때문에 이해하기가 쉬우며 사용 또한 편리하다.

 

코드 및 사용방법 출저 : https://api.slack.com/tutorials/tags/python - How to Build Your First Slack Bot with Python(https://www.fullstackpython.com/blog/build-first-slack-bot-python.html)

반응형
반응형

 

 

파이썬으로 슬랙에 메세지를 보낼 수 있는 방법 중 하나인 웹훅(webhook)을 사용하는 방법이다. 

 

- Spring boot Webhook (Java Webhook)

2018/11/24 - [Develop/Spring Boot] - Spring boot Slack WebHook. 슬랙 웹훅(Java Slack WebHook)

 

- Pyhton Slack Bot

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slackclient

2018/11/03 - [Develop/Python] - Python Slack Bot (파이썬 슬랙 봇) - slacker

2018/11/08 - [Develop/Python] - Python Slack Lunch Bot - 점심 알리미 봇

 

- Node.js Webhooks

2019/05/03 - [Develop/Node.js] - [Node.js] Node.js Slack WebHooks (슬랙 웹훅)

 

 

1. Apps 옆의 + 를 누른다.

 

 

2. View App Directory.

 

 

반응형

3. incoming webhooks을 검색 하고 Add한다.

 

 

 

4. 메세지를 보낼 채널을 선택한다.

 

 

5. 아래의 Webhook URL을 복사한다. 그 밑에는 웹훅 사용법이 적혀있다.

 

 

 

6. 파이썬에 아래의 코드를 사용하여 보낸다.

 

requests.post 함수와 Json형태의 메세지를 통해 보낸다.

import json import requests   def main():      webhook_url = "복사한 url"     content = "WebHook Test"     payload = {"text": content}      requests.post(         webhook_url, data=json.dumps(payload),         headers={'Content-Type': 'application/json'}     )   if __name__ == '__main__':     main() 

 

 

7. 결과

 

 

반응형
반응형


파이썬 의존성 라이브러리 관리를 위한 requirements.txt 추가.

터미널에 아래와 같이 치면 된다.


pip freeze > requirements.txt


반응형
반응형

Spring Boot 에서 TimeZone 설정하려면 아래와 같이 @PostConStruct를 설정해주면 된다.

 

 @SpringBootApplication public class Application {  	@PostConstruct 	void started() { 		TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul")); 	}  	public static void main(String[] args) { 		SpringApplication.run(Application.class, args);  	}  } 
반응형

UTC를 원한다면 TimeZone.getTimeZone("UTC")라고 하면 된다.

 

시간을 KST로 설정하고싶어서 TimeZone.getTimeZone("KST")라고 계속 했는데 안되서 삽질한 경험이 있다. KST라고하면 안되고

한국 시간 설정은 Asia/Seoul로 설정해주면 된다.

 

그 외 example timezone offset은 아래의 사이트에서 확인할 수 있다.

https://docs.oracle.com/javase/tutorial/datetime/iso/timezones.html

반응형
반응형


쿼리 작업할 때 count라는 컬럼을 업데이트 해줘야 하는 일이 발생했는데 아래와 같이 하면 자꾸 에러가 발생하였다.

update Test set count=?1 where id=?2


오랜 삽질 끝에, 혹시나 count가 mysql에서 예약어로 사용되고 있어서 그런가 하는 생각에 아래와 같이 바꿔보니 성공하였다.
 

update Test t set t.count=?1 where t.id=?2


앞으로 컬럼의 이름과 MySQL의 예약어가 겹치는 게 있는지 주의하자.

반응형
반응형

apache 에는 ab 라고 하는 벤치마크 툴이 있으며, 이 ab를 이용하면 서버의 성능을 테스트해 볼 수 있다.
test@:~$ sudo apt-get update 
test@:~$ sudo apt-get install apache2-utils

ex) test@:~$ ab -n 100 -c 1 http://서버주소/
※ 주의 요청 주소 앞에 항상 http와, 서버주소 뒤에는 항상 / 를 꼭 적어주어야 한다.

위 예시는 요청을 100번 주고 동시접속을 1번 하곘다는 예시이다. 도중에 ctrl+c를 통해 종료시킬 수도 있다.


반응형
반응형


AWS RDS MYSQL 한글 설정이다.


※ RDS가 먼저 설치되어 있는 가정하에 작성 함.


※ 설정 후 spring boot에서 다시 한글로 설정하기 -> https://pangyeon.tistory.com/9?category=682580


1. 먼저 파라미터 그룹에 들어가서 파라미터 그룹을 생성한다.





2. 생성된 파라미터 그룹에 들어가 아래와같이 character_set을 검색하고 파라미터 편집을 클릭한다.



3. 아래에 나타나있는 모든 값을 utf8로 변경한다.



4. 다시 검색창에 collation이라고 검색한뒤 아래 와 같이 모두 utf8_general_ci로 바꿔준다.



5. 다음 인스턴스로 들어가 수정을 클릭한다.




6. 수정을 클릭한 후 데이터베이스 옵션에 DB 파라미터 그룹을 위에 생성한 것으로 설정한다음 재부팅.


반응형
반응형


※ RDS사용시 MySQL 한글로 설정 https://pangyeon.tistory.com/9?category=682580


Spring Boot에서 데이터베이스가 UTF8로 설정 되어있음에도 불구하고 물음표(?)로 값이 들어갈 때가 있다.

이 경우 application.propertise에서 mysql 주소뒤에 

주소/테이블명/?useUnicode=true&characterEncoding=utf8


이렇게 붙여주면 데이터 입력시 한글로 잘 들어간다.

반응형

+ Recent posts