Flask 웹 api 기본 구성 코드
from flask import Flask,request,jsonify import logging from functools import wraps
app = Flask(__name__)
file_handler = logging.FileHandler('app.log') app.logger.addHandler(file_handler) app.logger.setLevel(logging.INFO)
def requires_auth(f): @wraps(f) def decorated(*args, **kwargs): auth = request.authorization if not auth: return authenticate()
elif not check_auth(auth.username, auth.password): return authenticate() return f(*args, **kwargs)
return decorated
@app.route('/ntalk', methods = ['GET', 'POST']) @requires_auth def response(): # logging app.logger.info(str(request))
# get handling if request.method == 'GET': if 'code' in request.args: return "code: " + request.args['code']+"
"
# post handling elif request.method == 'POST': if request.headers['Content-Type'] == 'application/json': input_json = request.get_json() data = { 'msg' : input_json['message'], 'number' : 3 } resp = jsonify(data) resp.status_code = 200 return resp
# 404 error handling @app.errorhandler(404) def not_found(error=None): message = { 'status': 404, 'message': 'Not Found: ' + request.url, } resp = jsonify(message) resp.status_code = 404 return resp
def check_auth(username, password): return username == 'admin' and password == 'secret'
def authenticate(): message = {'message': "Authenticate."} resp = jsonify(message) resp.status_code = 401 resp.headers['WWW-Authenticate'] = 'Basic realm="Example"' return resp if __name__ == "__main__": app.run(debug = True, port = 8808, host = '0.0.0.0')
from http://perpetual.tistory.com/34 by ccl(A) rewrite - 2020-03-06 18:54:27
댓글
댓글 쓰기