Backend/Flask 개발일지

    8. 미니터(Miniter) API 개발 (타임라인)

    8. 미니터(Miniter) API 개발 (타임라인)

    이번에 구현할 기능은 타임라인 기능이다. 타임라인은 팔로우한 사용자의 글 목록을 보여주는 기능이다. 코드는 다음과 같다. @app.route("timeline/", methods=['GET']) def timeline(user_id): if user_id not in app.users: return '사용자가 존재하지 않습니다.', 400 follow_list = app.users[user_id].get('follow', set()) follow_list.add(user_id) timeline = [tweet for tweet in app.tweets if tweet['user_id'] in follow_list] return jsonify({'user_id' : user_id, 'timeline' : ..

    6. 미니터(Miniter) API 개발 (300자 제한 트윗 글 올리기)

    6. 미니터(Miniter) API 개발 (300자 제한 트윗 글 올리기)

    300자 제한 트윗 글 올리기 엔드포인트를 구현하기 위해서는 다음의 요소들을 구현하여야 한다. 사용자는 300자를 초과하지 않는 글을 올릴 수 있다. 만일 300자를 초과하면 엔드포인트는 400 Bad Request 응답을 보내야 한다. 사용자가 300자 이내의 글을 전송하면 엔드포인트는 사용자의 글을 저장하고 있어야 한다. 따라서 타임라인 엔드포인트를 통하여 읽을 수 있도록 해야 한다. 먼저 Tweet 엔드포인트를 호출할 때 전송하는 JSON 데이터는 다음과 같다. { "id" : 1, "tweet : "My First Tweet" } 엔드포인트를 구현하면 다음과 같다. app. tweets = [] @app.route("/tweet", methods['POST']) def tweet(): payloa..

    5. 미니터(Miniter) API 개발 (회원가입)

    5. 미니터(Miniter) API 개발 (회원가입)

    이전에 Ping 엔드포인트 하나만 있는 API를 구현한 것에 이어서 미니 트위터인 미니터(Miniter)를 개발해 보고자 한다. 미니터는 다음의 기능을 제공한다. 회원가입 로그인 트윗(tweet) : 게시물 작성 다른 회원 팔로우 언팔로우 타임라인 (팔로우하는 사람들의 트윗들) 회원가입 회원가입을 이루는 구성요소는 id, name, email, password, profile 이 있다. 일단 이전에 구성한 Ping API 와 회원가입 API 코드를 합치면 다음과 같다. from flask import Flask, request app = Flask(__name__) app.id_count = 1 app.users = {} @app.route("/ping", methods=['GET']) def ping(..

    3. 미니콘다 가상 환경 설치와 Flask  설치, ping 엔드 포인트

    3. 미니콘다 가상 환경 설치와 Flask 설치, ping 엔드 포인트

    설치한 Ubuntu 실행시킨 후 다음의 명령어를 입력하여 가상 환경을 설치한다. conda create --name api python=3.9 가상 환경을 설치한 후 활성화 하는 명령어와 비활성화 시키는 명령어는 다음과 같다. conda activate api conda deactivate 지금이야 하나의 가상 환경만을 이용하지만 나중에는 여러개의 가상 환경을 이용하게 될 수 있는데 이 때 어떤 가상 환경을 사용해야 할지 이름이 기억나지 않는 경우 다음의 명령어로 가상 환경들의 리스트를 출력시켜 확인 할 수 있다. conda env list conda source activate makeapi 명령어를 실행시켜 가상 환경을 활성화 하였으면 이제 Flask 를 설치한다. 설치 명령어는 아래와 같다. pip..