728x90
반응형

 티스토리 

 

페이지 추가하기

Flask 웹페이지에서 페이지를 추가하는 방법

1. 코드리뷰

 

from flask import Flask, send_from_directory
from flask import abort
app = Flask(__name__)

@app.route('/favicon.ico')
def favicon():
    try:
        return send_from_directory('static', 'favicon.ico', mimetype='image/vnd.microsoft.icon')
    except FileNotFoundError:
        abort(404)


# Your existing routes
@app.route('/')
def home():
    return 'Welcome to the Home Page!'

@app.route('/about')
def about():
    return 'This is the About Page.'

@app.route('/user/<username>')
def show_user_profile(username):
    return f'User {username}'

if __name__ == '__main__':
    app.run(debug=True, port=5000)

에러 핸들링 추가:
현재 코드에서는 정적 파일(favicon.ico)을 찾을 수 없는 경우에 대한 예외 처리. 파일이 존재하지 않을 때의 에러에 대한 핸들링을 추가하는 것이 좋습니다.

python
Copy code
from flask import abort

@app.route('/favicon.ico')
def favicon():
    try:
        return send_from_directory('static', 'favicon.ico', mimetype='image/vnd.microsoft.icon')
    except FileNotFoundError:
        abort(404)
이렇게 하면 파일이 없는 경우 404 오류를 반환합니다.

favicon.ico 위치 이동:
보통 파비콘은 static 폴더에 위치시키는 것이 일반적입니다. 코드에서도 send_from_directory를 사용하고 있으므로 파일을 static 폴더로 이동시키면 더 일관성 있습니다.

/your_project
├── app.py
├── static
│   └── favicon.ico
코드에서도 send_from_directory('static', 'favicon.ico', ...)로 설정해두었기 때문에 실제 파일 위치와 맞추는 것이 좋습니다.

플라스크 애플리케이션 설정:
플라스크 애플리케이션의 디버그 모드와 포트 설정은 외부에 노출될 때에만 사용되어야 합니다. 실제로 배포할 때는 디버그 모드를 비활성화하고, 포트 번호를 변경하는 것이 보안적으로 더 안전합니다.

마무리

- 이번 포스팅은 Flask 웹에 페이지 추가 및 favicon 아이콘 추가에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형
728x90
반응형

 티스토리 

 

Flask 라이브러리 기초 1

먼저 간단히 출력하는 코드로 연습해보자~
시작하기 앞서 pip install flask로 라이브러리 설치부터 하자.

1. 코드리뷰

from flask import Flask

app = Flask(__name__)

@app.route('/')
def start_hello():
    return "Hello World"

if __name__ == '__main__':
    app.run(debug=True, port=5000)  # 포트를 변경하여 충돌을 피하고, 디버그 모드를 유지하거나 비활성화합니다.

 - 포트 번호 80 사용 주의: 포트 번호 80은 일반적으로 웹 서버에서 사용되는 기본 포트입니다. 그러나 일반적으로 특별한 권한 없이는 1024번 이하의 포트를 사용할 수 없습니다. 만약 권한이 없는 사용자로서 실행된다면, 포트 80을 사용하려고 시도하면 에러가 발생할 수 있습니다. 일반적으로 개발 환경에서는 다른 포트를 사용하거나, 권한 상승 없이 사용 가능한 포트를 선택하는 것이 좋습니다.

- main 함수의 역할: main 함수는 Flask 앱을 실행시키는 역할을 하고 있습니다. 이것은 일반적인 구조는 아닙니다. 일반적으로 Flask 앱은 모듈 수준에서 실행되어야 하므로, main 함수를 사용하지 않고 바로 __name__ == '__main__' 블록에서 실행되도록 하는 것이 더 자연스러울 것입니다.

- app.run(debug=True, port=5000)는 Flask 애플리케이션을 실행하는 메소드 호출입니다. 여기서 각 매개변수는 다음과 같은 역할을 합니다.

- debug=True: 디버그 모드를 활성화합니다. 디버그 모드는 코드 수정 후 서버를 재시작하지 않아도 변경 사항이 즉시 반영되도록 해줍니다. 또한 예외 메시지를 브라우저에 자세히 표시해주므로 코드 디버깅이 편리해집니다. 그러나 프로덕션 환경에서는 비활성화해야 합니다.

- port=5000: Flask 애플리케이션이 사용할 포트를 지정합니다. 여기서는 5000번 포트를 사용하고 있습니다. 포트는 네트워크 통신에서 어떤 프로세스와 통신할지를 결정하는 데 사용됩니다. Flask 개발 서버는 기본적으로 5000번 포트를 사용하며, 개발 중인 애플리케이션을 웹 브라우저를 통해 확인할 수 있도록 합니다.

따라서, app.run(debug=True, port=5000)를 사용하면 Flask 개발 서버가 디버그 모드로 실행되며, 5000번 포트를 통해 클라이언트의 요청을 수신하고 응답합니다.

 

마무리

- 이번 포스팅은 Hello World 출력으로 Flask 기초에 대해 알아봤습니다.

 

궁금한 사항은 댓글을 통해서 남겨 주시면 답변 드리겠습니다.
감사합니다.

 

 

728x90
반응형

+ Recent posts