gunicorn
작성 수정
- Python Web Server Gateway Interface HTTP Server for UNIX
ps aux | grep gunicorn | kill -9 ctrl+cv
kill -9 `pgrep -f gunicorn`
-
로그인 성공 후 사용자를 /admin 페이지로 이동시킴
from flask import redirect, url_for if user: session['user_id'] = str(user['_id']) return redirect(url_for('admin')) # url_for: 주어진 뷰 함수 이름에 해당하는 URL을 동적으로 생성 -
던더 변수
__name__- 파일이 직접 실행되면
"__main__"으로 설정됨 - 파일이 import되면 파일명으로 설정됨
- 파일이 직접 실행되면
__init__- 클래스의 인스턴스를 생성할 때 호출되는 초기화 메서드
# main.py if __name__ == "__main__": print("이 파일은 직접 실행되었습니다.") # another_file.py print(f"이 파일의 모듈명은: {__name__}") # 이 파일의 모듈명은: another_fileclass MyClass: def __init__(self, name): self.name = name obj = MyClass("example") print(obj.name) # 출력: example -
데코레이터
- 함수를 감싸서, 실행 전에 추가적인 기능을 붙이는 도구
@app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] user = users_collection.find_one({'username': username, 'password': password}) if user: session['user_id'] = str(user['_id']) return redirect(url_for('admin')) return 'Invalid username or password' return ''' <form method="post"> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br> <input type="submit" value="Login"> </form> '''@app.route의 역할- 이 데코레이터는 특정 URL 경로와 함수를 매핑해, 해당 경로로 요청이 들어오면 그 함수를 실행함.
- 함수 호출 전에 Flask에게 **특정 경로와 HTTP 메서드(GET/POST 등)**를 연결하는 역할을 함.
@app.route('/login')은 사용자가/login경로에 접근하면login()함수를 호출하도록 Flask에 알려줌.
- 플라스크에서
@app.route로 매핑된 함수는 **“뷰 함수”**임.- 뷰 함수는 웹 요청을 받아 처리한 결과를 반환하는 역할을 함.
- 반환값은 HTML, JSON, 문자열 등 다양한 형식이 될 수 있음.
- 뷰 함수의 본질적인 역할은 요청을 처리하고, Response 객체나 그에 상응하는 데이터를 반환하는 것임