TIL Day 11.

Jen Devver·2024년 2월 27일

내배캠 TIL

목록 보기
11/91

개인과제 2번 추가과제

승/패/무승부 기록하는 것에서 조금 애로사항이 있었음.
승, 패, 무승부의 숫자가 축적이 되지 않는 문제점 →
분명히 count += 1 로 win, lose, tie 각각 다 설정을 해두었는데.. 왜 축적이 안 되었을까... 혼자 이렇게 저렇게 만져보면서 해결함.
사실 어떻게 해결한 건지는 잘 기억이 안 나고 다만 chatGPT 를 너무 믿어서는 안 되겠다고 생각했다. 코드가 복잡할수록 제시하는 코드가 완벽하게 작동하는 확률이 떨어지고, 제시한 코드가 심플하지 않은 경우도 있었다. 아예 내 코드를 긁어서 넣어보기도 했는데 답변으로 제시한 코드가 영 마음에 들지 않았고 어떤 코드는 원하는 대로 작동을 하지 않기도 했다. 구글 대용 정도로 생각해야지 튜터님들처럼 생각하면 안되겠다는 교훈을 얻음.

if not ask()
를 이용하면 각 if 조건 뒤에 ask()를 일일히 붙여주지 않아도 되어서 코드가 더 깔끔해짐.

개인과제 4번

Flask와 sqlite를 이용하는 게 오랜만이라 쉽지 않음..
예시에서는 드랍다운으로 가위/바위/보를 submit 버튼을 통해 제출하는 거였는데 아무래도 깔끔하지도 않고 버튼을 한 번 더 누르는 과정이 싫어서 각각의 가위, 바위, 보에 대해 버튼을 만들었다.

## form으로 입력
    <form action="{{ url_for('rockscissorspaper') }}">
        <input type="submit" value="가위✌️" name="choice">
        <input type="submit" value="바위✊" name="choice">
        <input type="submit" value="보✋" name="choice">
    </form>

그래서 화면에 출력까지는 잘 됐는데.. db로 쌓는 것을 아직 구현을 못함.

주요 코드는 아래와 같이 지정해둠

@app.route('/game/')
def rockscissorspaper():
    list = ["가위✌️", "바위✊", "보✋"]
    computer = random.choice(list)
    user = request.args.get('choice')  # form에서 보낸 데이터 받기
    if computer == user:
        result = "무승부입니다!"
    elif (user == "가위✌️" and computer == "바위✊") or (user == "바위✊" and computer == "보✋") or (user == "보✋" and computer == "가위✌️"):
        result = "졌습니다"
    else:
        result = "이겼습니다!"
    display = {
        '컴퓨터': computer,
        '사용자': user,
        '결과': result
    }

여기서 db를 생성하기 위해 코드를 붙여넣었는데..

#db 형태 지정
class GameHistory(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_choice = db.Column(db.String, nullable=False)
    computer_choice = db.Column(db.String, nullable=False)
    result = db.Column(db.String, nullable=False)

    def __repr__(self):
        return f'컴퓨터: {self.computer_choice} 사용자: {self.user_choice} 결과: {self.result}'


with app.app_context():
    db.create_all()
    
    # 데이터 db에 저장
    history = GameHistory(computer, user, result)
    db.session.add(history)
    db.session.commit()
    

여기에서 데이터 db에 저장하는 변수 지정에 애먹고 있음. 내일 해결할 것.

Today I Thought

역시 따라치기만 해서는 뇌리에 안 남는다 싶었던 하루였다. 분명히 다 들었던 강의인데 다시 일일히 찾아보면서 하는 중이다...! 특히 미니 프로젝트도 프론트엔드만 했다보니 백엔드 관련된 부분은 영 헤매는 중... SQL도 요즘 못 풀고 있어서 감을 빨리 끌어올리고 싶다. 그리고 TIL 쓰기에 내가 겪었던 문제점은 기억나는데 어떻게 해결했는지 기억이 안 나는 것이 조금 문제인 듯!!!! 내일은 중간중간 TIL에 쓸 부분을 메모해두면서 과제 진행해야겠다!

profile
발전 중...

0개의 댓글