Flask框架中的一次性执行,渲染web之前的功能是如何实现的?

问题描述 投票:0回答:0

我使用 Flask 构建 Web 应用程序。我想要应该执行一次并在呈现网络之前就绪的构建模型函数。之后,它不应该再执行了,构建的模型就可以让我使用了。对于我下面的代码,它无法实现我的目的。请帮助我。

import pathlib
from flask import Flask, request, jsonify, render_template
import main_classifier
import classify_header
import os
import logging
import SingleURLFeatureExtraction
import pandas as pd
import numpy as np
from process_url import process_url
from url_feature_model import build_model
from extract_msg import Message

app = Flask(__name__)

 

# Set up the logger
logging.basicConfig(level=logging.DEBUG)

initialized = False

def build_and_initialize_model():
    global initialized
    if not initialized:
        # Perform model building and initialization tasks here
        global model
        model = build_model()
        print("Model built and initialized...")
        initialized = True

# Call the build_and_initialize_model() function immediately
build_and_initialize_model()    
        
        
@app.route('/')
def index():               
    return render_template('index.html')

@app.route('/', methods=['POST'])
def process_input():
    global model
    input_data = request.json['input']
    app.logger.info(f'Received input: {input_data}')
    features = SingleURLFeatureExtraction.addfeature(input_data)
    output = process_url(model, features)
    #output = main_classifier.process_data(input_data)
    app.logger.info(f'Response: {output}')
    return jsonify(output=output), 200, {'Content-Type': 'application/json'}
python function flask
© www.soinside.com 2019 - 2024. All rights reserved.