Python/Flask

    [미니터] sqlalchemy를 사용한 API와 DB 연결

    [미니터] sqlalchemy를 사용한 API와 DB 연결

    1. config.py 파일 생성 db = { 'user' : 'DB사용자이름', 'password' : '비밀번호', 'host' : '127.0.0.1', 'port' : 3306 , # 포트정보 : RDBMS는 주로 3306을 통해 연결 'database' : 'miniter' # DB 이름 } DB_URL = f"mysql+mysqlconnector://{db['user']}:{db['password']}@{db['host']}:{db['port']} /{db['database']}?charset=utf_8" 2. app.py 수정 from sqlalchemy import create_engine, text from config import DB_URL def creat_app(test_confi..

    [미니터] 타임라인

    [미니터] 타임라인

    # 타임라인 불러오기 @app.route('/timeline/', methods=['GET']) # 1 def timeline(user_id): # 2 if user_id not in app.users : return '사용자가 존재하지 않습니다', 400 follow_list = app.users[user_id].get('follow', set()) # 3 follow_list.add(user_id) # 4 timeline = [tweet for tweet in app.tweets if tweet['user_id'] in follow_list] # 5 return jsonify({ # 6 'user_id' : user_id, 'timeline' : timeline }) # 1 : 엔드포인트 주소에 해당..

    [미니터] 팔로우와 언팔로우

    [미니터] 팔로우와 언팔로우

    # 팔로우 @app.route('/follow', methods = ["GET","POST"]) def follow() : payload = request.json # 1 user_id = int(payload['id']) user_id_to_follow = int(payload['follow']) # 2 if user_id not in app.users or user_id_to_follow not in app.users : # 3 return "사용자가 존재하지 않습니다.", 400 user = app.users[user_id] user.setdefault('follow', set()).add(user_id_to_follow) # 4 return jsonify(user) # 언팔로우 @app.route..

    [미니터] 트윗올리기

    [미니터] 트윗올리기

    1. 300자 제한이 있는 트윗을 올리는 엔드포인트 구현 app.users = {} #사용자 정보 저장 app.tweets = [] #사용자들의 트윗을 저장하는 곳. key=사용자아이디, value=사용자의 트윗을 담은 리스트 @app.route('/tweet', methods = ["GET","POST"]) def tweet() : payload = request.json # 1 user_id = int(payload['id']) # 2 tweet = payload['tweet'] # 3 if user_id not in app.users : # 4 return '사용자가 존재하지 않습니다', 400 if len(tweet) > 300 :# 5 return '300자를 초과했습니다', 400 user_i..

    [미니터] 회원가입 엔드포인트

    [미니터] 회원가입 엔드포인트

    project/back_flask/app.py from flask import Flask, request, jsonify #1 app = Flask(__name__) app.id_count = 1 app.users = {} #key = 사용자 아이디, value = 딕셔너리에 저장된 사용자 정보 @app.route('/ping', methods=['GET']) def ping() : return "pong" @app.route("/sign-up", methods=["POST"]) def sign_up(): new_user = request.json #2 new_user["id"] = app.id_count #3 app.users[app.id_count] = new_user #4 app.id_count =..

    [미니터] 객체 생성, 엔드포인트 등록

    [미니터] 객체 생성, 엔드포인트 등록

    project/back_flask/app.py from flask import Flask app = Flask(__name__) # 객체 app 변수로 지정 @app.route("/ping", methods=["GET"]) # route 데코레이터로 엔드포인트 등록 def ping(): # ping 함수 생성 return "pong" if __name__ == "__main__": app.run(host="0.0.0.0", port="8080") 1. 플라스크 app 실행 vscode에서 run 버튼 누르면 다음과 같은 메시지가 뜸 브라우저에서 http://172.30.1.5:8080/ping 접속하면 pong 이라는 글자가 뜸 # WARNING : 운영모드로 되어있으니 개발자 모드로 바꾸라는 경고 1...