Khai báo các định tuyến được định nghĩa bên trong Blueprint

Một phần của tài liệu Hệ thống quản lý quan hệ khách hàng (CRM) (Trang 70)

2. Code xử lý

2.1.6. Khai báo các định tuyến được định nghĩa bên trong Blueprint

Sau khi lập trình xử lý và định tuyến các class trong chức năng quản lý thông tin khách hàng, để chức năng hoạt động được, cần phải khai báo các định tuyến được định nghĩa bên trong blueprint client của hệ thống.

Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu

SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 71

2.1.6.1. Main/__init__.py

from flask import Flask

class App(Flask):

def __init__(self, instance_path: str): super(App, self).__init__(

import_name=__name__,

instance_path=instance_path,

instance_relative_config=True

)

# assigning the base templates & static folder

self.template_folder = './base/templates'

self.static_folder = './base/static' # loading environment variables

self.load_environment_variables()

# registering essential partials for the app

self.register_blueprints()

self.register_login_manager()

def register_blueprints(self): """

Registering the app's blueprints. """

from src.main.modules.client import client_module

self.register_blueprint(client_module, url_prefix="/client")

def register_login_manager(self): # adding login manager

from flask_login import LoginManager

login_manager = LoginManager()

login_manager.login_view = "auth.login" login_manager.init_app(self)

@login_manager.user_loader

def load_user(email):

# registering user_loader

from src.main.modules.user import User

return User.query.get(email)

def load_environment_variables(self): """

Loading the configured environment variables. """

# Load the default configuration (../config/default.py)

self.config.from_object('config.default')

# Load the file specified by the APP_CONFIG_FILE environment variable # Variables defined here will override those in the default

configuration

Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu

SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 72

2.1.6.2. Src/__init__.py

import sys

import os

from pathlib import Path

def add_sys_paths():

print('\n[ADDING PATHS TO THE PYTHON ENVIRONMENT...]')

# getting the current file's absolute path

CURRENT_FILE_ABSOLUTE_PATH = Path(__file__).absolute()

# WORKING_DIR: src

WORKING_DIR = os.path.abspath(os.path.join(CURRENT_FILE_ABSOLUTE_PATH, '../'))

# ROOT_DIR (includes the: src ; scripts ; venv ; ..

ROOT_DIR = os.path.abspath(os.path.join(CURRENT_FILE_ABSOLUTE_PATH, '../../'))

# appending the WORKING_DIR, ROOT_DIR to the python environment

sys.path.append(WORKING_DIR) sys.path.append(ROOT_DIR)

print('\n[PATHS IN THE PYTHON ENVIRONMENT...]:') print('\n'.join(sys.path), '\n')

return WORKING_DIR, ROOT_DIR

def create_app():

# initializing the app

print("\n[INITIALIZING THE APP...]")

from src.main import App

app = App(instance_path=add_sys_paths()[0]) print("\n[INITIALIZING THE DATABASE...]") db.init_app(app=app)

# migrating Models to DB

from flask_migrate import Migrate

print("\n\n[MIGRATING THE DATABASE...]") migrate = Migrate()

with app.app_context():

# allow dropping column for sqlite

if db.engine.url.drivername == 'sqlite':

migrate.init_app(app, db, render_as_batch=True) else:

migrate.init_app(app, db)

# importing models

import src.main.modules.user.user_model

# place your new model (want to be created in the app.sqlite) here

import src.main.modules.client.client_model

print('\n\n[NEW APP RETURNED...]')

return app

Đề tài đồ án tốt nghiệp 2018 – 2021 Trường Đại học Bà Rịa – Vũng Tàu

SINH VIÊN THỰC HIỆN: BÙI VĂN HUÂN 73

print("\n[DEFINING THE DATABASE INSTANCE...]")

from flask_sqlalchemy import SQLAlchemy

Một phần của tài liệu Hệ thống quản lý quan hệ khách hàng (CRM) (Trang 70)

Tải bản đầy đủ (PDF)

(73 trang)