TIL(4)

M·2023년 5월 18일
0

TIL

목록 보기
4/42


오늘도 어김없이 찾아온 아침..
오늘은 뭔가 무척 일어나기 싫었다.
어제 자기전까지 인프런에서 git 강의를 보다 잠들었는데.. 분명 봤는데 기억이 잘 안난다.
오늘은 TIL(4)에서 했던걸 이어서, 개인페이지에 멤버 데이터들을 mongodb에서 가져와서
클라이언트쪽에서 보여지게 만들어야한다. 일단.. 처음으로 든 생각은, 어떻게하지..?였다.
구글링을 해보고난뒤 내가 해야될 일을 알았다. 멤버들의 개인 아이디를 가져와서
응용 하면 되기 때문이다. 음.. 몽고디비에서 도큐멘트를 생성할 때 자동적으로 priamry key인
_ id를 자동적으로 생성한다. 그 id값을 가지고 몽고디비 안에 데이터 아이디로 접근을했다. 근데 작동을 안해서 인터넷에 수십분을 검색해보니, 파이썬에서는 Object 아이디를 읽지 못한다?라고 한다. 그래서 .. 어떤 방법이 있을까 하고 구글링을 또 시작했다. 코딩은 구글링에서 구글링으로
끝나는것 같다.
그래서 결국 해낸 방법이 멤버를 생성할때 순서대로 1씩 증가하게 만들었다.

@app.route("/members", methods=["POST"])
def members_post():
    name_receive = request.form['name_give']
    image_receive = request.form['image_give']
    blog_receive = request.form['blog_give']
    comment_receive = request.form['comment_give']
    hobby_receive = request.form['hobby_give']

    all_members = list(db.members.find({}, {'_id': False}))
    if not all_members:
        id = 1
    else:
        last_member = all_members[-1]
        if 'member_id' in last_member:
            id = last_member['member_id'] + 1
        else:
            id = 1

    doc = {
        'member_id': id,
        'name': name_receive,
        'image': image_receive,
        'blog': blog_receive,
        'comment': comment_receive,
        'hobby': hobby_receive
    }
    db.members.insert_one(doc)
    return jsonify({'msg': '저장 완료!'})

app.py 멤버를 저장하는 api안에 조건문을 추가했다.
if문을 대충 내 머리로 읽어본다면..
만약에 members라는 디비컬렉션에서 가져온 데이터가 없으면 id를 1로 지정하고,
그렇지 않다면 all_members 맨 뒤에 있는 데이터를 가져온다..
만약에 member_id에 있는 데이터가 last_member에 있다면 id는 last_member안에
member_id에 1을 더해라. 그게 아니라면 id는 다시 1로 지정해라.. 라는 것 같다.
솔직히 저 코드중에 내가 읽을 수 있는 줄이 읽을 수 없는 줄보다 많은것 같다.
에잉.. 오늘은 여기까지만 적어야겠다.. 시간이 12:15분이다.
나는...분명히..오늘은..일찍..잘려고...ㅎ...했는데..

profile
자바스크립트부터 공부하는 사람

0개의 댓글