125 lines
3.6 KiB
Python
125 lines
3.6 KiB
Python
#!/usr/bin/python3
|
|
"""
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
"""
|
|
__author__ = "n0251281"
|
|
|
|
import re
|
|
from datetime import datetime
|
|
|
|
import pandas as pd
|
|
from flask import Flask, redirect, render_template, request, session
|
|
# from flask_migrate import Migrate
|
|
from flask_sqlalchemy import SQLAlchemy
|
|
# from flask_wtf import FlaskForm
|
|
# from wtforms import (SelectField, SelectMultipleField, StringField,
|
|
# SubmitField, widgets)
|
|
# from wtforms.fields.html5 import DateField
|
|
# from wtforms.validators import DataRequired
|
|
|
|
from itsdangerous import URLSafeTimedSerializer
|
|
from recovery.blueprints.page import page
|
|
from recovery.blueprints.recover import recover
|
|
from flask_bootstrap import Bootstrap
|
|
|
|
import redis
|
|
from flask_session import Session
|
|
from recovery.lib.common.connecter import Connecter
|
|
# from recovery.lib.fconfig import DevConfig
|
|
# from recovery.lib.function.Outputter import Output
|
|
# from recovery.lib.function.pgfunctions import execute_batch
|
|
# from recovery.lib.function.Writer import csvwrite
|
|
# from recovery.lib.sql.Queries import sfquery
|
|
|
|
from recovery.extensions import (
|
|
debug_toolbar,
|
|
#mail,
|
|
csrf,
|
|
#db,
|
|
#login_manager
|
|
)
|
|
|
|
def create_app(settings_override=None):
|
|
"""
|
|
Create a Flask application using the app factory pattern.
|
|
|
|
:param settings_override: Override settings
|
|
:return: Flask app
|
|
"""
|
|
|
|
app = Flask(__name__, instance_relative_config=True)
|
|
|
|
app.config.from_object('config.settings')
|
|
app.config.from_pyfile('settings.py', silent=True)
|
|
|
|
app.config["SECRET_KEY"] = "dfjjflsfjlskjdk"
|
|
app.config["SESSION_COOKIE_DOMAIN"] = "localhost.localdomain"
|
|
app.config["SESSION_COOKIE_SECURE"] = False
|
|
app.config["SESSION_PERMANENT"] = False
|
|
app.config['SESSION_USE_SIGNER'] = True
|
|
app.config["SESSION_TYPE"] = "redis"
|
|
app.config['SESSION_REDIS'] = redis.from_url('redis://redis:6379')
|
|
app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
|
|
|
|
app.register_blueprint(page)
|
|
app.register_blueprint(recover)
|
|
extensions(app)
|
|
Bootstrap(app)
|
|
Session(app)
|
|
#authentication(app, User)
|
|
connect = Connecter()
|
|
#conn = connect.connect(sfparams)
|
|
db = SQLAlchemy(app)
|
|
|
|
#if settings_override:
|
|
# app.config.update(settings_override)
|
|
|
|
|
|
return app
|
|
|
|
def extensions(app):
|
|
"""
|
|
Register 0 or more extensions (mutates the app passed in).
|
|
|
|
:param app: Flask application instance
|
|
:return: None
|
|
"""
|
|
debug_toolbar.init_app(app)
|
|
#mail.init_app(app)
|
|
#csrf.init_app(app)
|
|
#db.init_app(app)
|
|
#login_manager.init_app(app)
|
|
|
|
return None
|
|
|
|
# def data_retrieve(queryvalue, tablename, columnlist, sessioninfo):
|
|
# (sfdatabase, schemaname, conn) = sfconnect(sessioninfo)
|
|
# cur = conn.cursor()
|
|
# queryname = sfquery.generate_query(
|
|
# queryvalue,
|
|
# schemaname,
|
|
# tablename,
|
|
# session["startdate"],
|
|
# session["enddate"],
|
|
# # session["use_daterange"],
|
|
# "1",
|
|
# sfdatabase,
|
|
# columnlist,
|
|
# )
|
|
# cur.execute(queryname)
|
|
# rows = 0
|
|
# cur.get_results_from_sfqid(cur.sfqid)
|
|
# results = cur.fetchall()
|
|
# return results
|
|
|