[python] 웹 서버에 로그인 기능 추가하기

이번 포스트에서는 Python 웹 서버에 로그인 기능을 추가하는 방법에 대해 알아보겠습니다. 웹 애플리케이션이나 웹 사이트를 개발할 때, 사용자 인증 기능은 중요한 요소입니다. 사용자들은 로그인하여 자신의 계정에 접근하고 개인 정보를 관리할 수 있어야 합니다.

Flask 웹 프레임워크

이 예제에서는 Flask 웹 프레임워크를 사용하여 간단한 웹 서버를 구축합니다. Flask는 Python으로 작성된 웹 프레임워크로, 신속하게 웹 애플리케이션을 개발할 수 있는 강력한 도구입니다. Flask를 사용하려면 먼저 Flask를 설치해야 합니다. 아래 명령을 사용하여 Flask를 설치해주세요.

pip install flask

로그인 기능 구현하기

  1. 필요한 모듈을 import 합니다.
    from flask import Flask, render_template, request, redirect, session
    
  2. Flask 애플리케이션을 생성하고 비밀 키를 설정합니다.
    app = Flask(__name__)
    app.secret_key = "your_secret_key"
    
  3. 사용자가 로그인할 수 있는 HTML 페이지를 작성합니다.
    @app.route("/")
    def login():
     return render_template("login.html")
    
  4. 로그인을 처리하는 경로를 설정합니다. 사용자가 제출한 로그인 정보를 확인하고 세션에 사용자 정보를 저장합니다.
    @app.route("/login", methods=["POST"])
    def process_login():
     username = request.form.get("username")
     password = request.form.get("password")
    
     # 로그인 정보 확인 후 세션에 저장
     if username == "admin" and password == "1234":
         session["username"] = username
         return redirect("/dashboard")
     else:
         return render_template("login.html", error="Invalid login credentials")
    
  5. 사용자 인증이 필요한 페이지를 작성합니다. 사용자가 로그인되어 있지 않으면 로그인 페이지로 리디렉션됩니다.
    @app.route("/dashboard")
    def dashboard():
     if "username" in session:
         return render_template("dashboard.html", username=session["username"])
     else:
         return redirect("/")
    
  6. 로그아웃을 처리하는 경로를 설정합니다. 세션에서 사용자 정보를 삭제하고 로그인 페이지로 리디렉션합니다.
    @app.route("/logout")
    def logout():
     session.pop("username", None)
     return redirect("/")
    
  7. 애플리케이션을 실행합니다.
    if __name__ == "__main__":
     app.run()
    

실행 및 테스트

위의 코드를 예제 파일에 저장한 후, 터미널에서 다음 명령을 실행하여 웹 서버를 시작합니다.

python app.py

웹 브라우저에서 http://localhost:5000 주소를 열어서 로그인 페이지가 표시되는지 확인합니다. “admin”과 “1234”로 로그인하여 대시보드 페이지로 이동하는지 확인해보세요.

이렇게 간단한 Flask 애플리케이션에 로그인 기능을 추가하는 방법을 알아보았습니다. 사용자 인증은 웹 애플리케이션의 보안과 사용자 경험을 향상시키는 데 중요한 역할을 합니다. 본 예제를 기반으로 웹 애플리케이션을 더 발전시켜 나가실 수 있습니다.

참고 자료