app/

여러가지 view와 login routing을 담당하는 역할을 하며, static 폴더를 통해 프론트 작업물(html, js, css) 를 관리하고 보여준다.

/app

/__init__.py

"""
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

/controller_api/__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

from flask import request
from controller import login_checker, selecter


"""
circular import 방지를 위해 deco함수를 만들었다
controller/login_checker.py에 해당 값을 보냄
"""
def login_router(login_bp):
    @login_bp.route("/login", methods=["POST"])
    def login_api():
        json_data = request.get_json()

        pk_user_id = json_data["pk_user_id"]
        pk_user_pw = json_data["pk_user_pw"]
        
        login_check_value = login_checker.login_check_and_get_session(
            pk_user_id, pk_user_pw
        )

        if login_check_value == False:
            return {"status" : 400, "error_msg": "올바른 ID혹은 PW가 아닙니다."}

        elif login_check_value == True:
            unoragnized_data = selecter.get_subject_information(pk_user_id, pk_user_pw)
        
        return unoragnized_data

/views_api/__init__.py

"""
기본 view를 return
"""
from flask import Blueprint
from .views import views_router


views_bp = Blueprint("views_bp", __name__)
views_router(views_bp)

/views_api/views.py

from flask import render_template

"""
main_page를 보여준다.
"""
# circular import 방지를 위해 deco함수를 만들었다
def views_router(views_bp):
    @views_bp.route("/")
    def main_view_api():

        print("views api inner")
        return render_template("pkselect.html")

/APP/static

/pkselect.html

/static

/js

/css

Last updated

Was this helpful?