티스토리 뷰
#기초
1. API란?
- Application Programming Inteface => 응용 프로그래밍 인터페이스
- 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- Open API 대부분 JSON을 활용하여 데이터를 주고 받음
1.1. JSON(JavaScript Object Notation)
- 경량의 Data 교환 형식
- JSON 표현식은 사람과 기계 모두 이해하기 쉬우며, 용량이 작아, 최근에는 JSON이 XML을 대체해서 데이터 전송등에 많이 사용
- 특정 언어에 종속되지 않으며, 대부분의 프로그래밍언어에서 JSON포맷의 데이터를 핸들링할 수 있는 라이브러리 제공
- 위키 정의: "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
- 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷
example of JSON
특징
1. JSON은 name-value 형태의 쌍으로 이루어짐
2. name인 경우 무조건 큰 따옴표로 묶어주기
3. {} : JSON 문법 시작
4. [] : 배열 의미
5. 객체는 반드시 name-value 의 쌍
1.2 JSON
- JSON인코딩 - Python 타입의 object를 JSON 문자열로 변경할 수 있음
- JSON 디코딩 - JSON 문자열을 다시 Python 타입으로 변환할 수 있다.
1.2.1. JSON 인코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import json
# 테스트용 Python Dictionary
customer = {
'id': 152352,
'name': '강진수',
'history': [
{'date': '2015-03-11', 'item': 'iPhone'},
{'date': '2016-02-23', 'item': 'Monitor'},
]
}
# JSON 인코딩
jsonString = json.dumps(customer)
# 문자열 출력
print(jsonString)
print(type(jsonString)) # class str
>>{"id": 152352, "name": "\uac15\uc9c4\uc218", "history": [{"date": "2015-03-11", "item": "iPhone"}, {"date": "2016-02-23", "item": "Monitor"}]}
>><class 'str'>
|
cs |
1.2.2. JSON 인코딩
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import json
# 테스트용 JSON 문자열
jsonString = '{"name": "강진수", "id": 152352, "history": [{"date": "2015-03-11", "item": "iPhone"}, {"date": "2016-02-23", "item": "Monitor"}]}'
# JSON 디코딩
dict = json.loads(jsonString)
# Dictionary 데이타 체크
print(dict['name']) #강진수
for h in dict['history']:
print(h['date'], h['item'])
#2015-03-11 iPhone
#2016-02-23 Monitor
|
cs |
2. Flask란?
- Python으로 구동되는 웹 어플리케이션 프레임워크
- Django 프레임워크보다 가볍고, 스케일이 작은 서버부터 큰 서버를 만들 수 있음
[1] Flask 기본 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return "Hello Flask"
@app.route('/info')
def info():
return "Info"
if __name__ == "__main__":
app.run(host = '0.0.0.0', port = 5000, debug = True)
|
cs |
[2] ArgumentParser 사용하여 Port 접속하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
from flask import Flask
from argparse import ArgumentParser
app = Flask(__name__)
@app.route('/')
def index():
return "Hello Flask"
@app.route('/info')
def info():
return "Info"
if __name__ == "__main__":
parser = ArgumentParser()
parser.add_argument('-p', '--port', default=5000, type=int, help='port to listen on')
args = parser.parse_args()
port = args.port
app.run(host='0.0.0.0', port=port)
|
cs |
접속하여 똑같이 실행할 수 있다.
<출처>
'인공지능 > 블록체인' 카테고리의 다른 글
블록체인 - 이더리움 네트워크 구축 (0) | 2019.11.02 |
---|---|
블록체인 개발환경 만들기 (0) | 2019.11.02 |
블록체인 개념 (0) | 2019.10.05 |
블록체인 관련 python - [3] UUID (0) | 2019.09.30 |
블록체인 관련 python - [2] Flask 사용하기 - Get, Post (0) | 2019.09.30 |