여러가지 view와 login routing을 담당하는 역할을 하며, static 폴더를 통해 프론트 작업물(html, js, css) 를 관리하고 보여준다.
/app
/__init__.py
application을 run_app에서 받은 config를 토대로 생성하는 곳이다.
viewsapi와 controllerapi에 있는 blueprint를 받아와 application 레지스터리에 등록도 한다.
"""
Application Factory Module
"""
from logging import DEBUG, debug
from flask import Flask
from .api.views_api import views_bp
from .api.controller_api import controller_bp
def create_app(config):
application = Flask(
import_name=__name__, static_folder="./static/", template_folder="./static/"
)
application.config.from_object(config)
application.register_blueprint(views_bp, url_prefix="/")
application.register_blueprint(controller_bp, url_prefix="/")
return application
/app/api
/__init__.py
__init__은 특정 클래스나 폴더 혹은 모듈이 호출될떄 함께 호출되고 실행되며, 패키지로 인식하게 해준다.
python3.3 버전부터는 __init__.py 파일이 없어도 패키지로 인식한다(PEP 420). 하지만 하위 버전 호환을 위해 __init__.py 파일을 생성하는 것이 안전한 방법이다.
/controller_api/__init__.py
Blueprint 등록을 위한 init.py 파일이다.
"""
로그인 확인 및 LMS데이터를 return
"""
from flask import Blueprint
from .login_api import login_router
controller_bp = Blueprint("controller_bp", __name__)
login_router(controller_bp)
/controller_api/login_api.py
mainpage에서 id와 pw값을 받으면 controller/login_checher.py에 해당 값을 보내 로그인 검증을 시행하고, 로그인이 되지 않는다면 에러 코드와 메세지를 반환 로그인이 된다면 해당 아이디로 가져온 lms 데이터를 반환해준다.