HTML 홈페이지 만들기 5 로그인확인

최형우·2024년 3월 2일

HTML

목록 보기
5/5

회원가입으로 저장된 데이터에 엑세스가 되는지,, 로그인이 되는지 확인하기 위해

로그인 페이지를 생성하고 app.py 파일을 수정

1. 먼저 main 파일을 수정하여 로그인 페이지에 접근 할 수 있도록 바디부분에 링크를 삽입


2. app.py 파일에 로그인 기능 소스 삽입

# '/login' URL에 GET 메서드로 요청이 들어왔을 때 로그인 폼을 보여주는 함수입니다.
@app.route('/login', methods=['GET'])
def show_login_form():
    return render_template("login.html")

# '/login' URL에 POST 메서드로 요청이 들어왔을 때 로그인을 처리하는 함수입니다.
@app.route('/login', methods=['POST'])
def login():
    try:
        # request.form을 통해 폼 데이터를 가져와서 사용합니다.
        username = request.form['username']
        password = request.form['password']
        
        # 데이터베이스에서 사용자 정보를 조회합니다.
        query = "SELECT * FROM users WHERE username = %s AND password = %s"
        cursor.execute(query, (username, password))
        user = cursor.fetchone()  # 사용자 정보를 하나 가져옵니다.
        
        # 사용자 정보가 있는지 확인하고 세션에 사용자 ID를 저장합니다.
        if user:
            session['user_id'] = user[0]
            return '로그인 성공!'
        else:
            return '유효하지 않은 사용자명 또는 비밀번호입니다.'
    except mysql.connector.Error as e:
        # MySQL 오류가 발생한 경우
        print("MySQL Error:", str(e))
        return '로그인에 실패했습니다.'
    except Exception as e:
        # 그 외의 예외가 발생한 경우
        print("An error occurred:", str(e))
        return '로그인에 실패했습니다.'

3. 이제 웹서버를 재가동하고 접속하여 테스트

데이터베이스에 입력된 데이터를 바탕으로 메시지가 출력되는 것을 확인하였음

profile
공부내용정리

0개의 댓글