#!/usr/bin/env python #encoding=utf8 import os from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy from jinja2 import BaseLoader, ChoiceLoader, TemplateNotFound from flask.ext.login import LoginManager from flask.ext.babel import Babel, lazy_gettext from config import basedir, WTF_CSRF_ENABLED, SECRET_KEY, LANGUAGES, PRODUCTS_PER_PAGE, SQLALCHEMY_RECORD_QUERIES, DATABASE_QUERY_TIMEOUT, APP_NAME, SITE_NAME, SITE_URL, UPLOAD_FOLDER, ALLOWED_EXTENSIONS, UPLOADED_FILES_DEST, UPLOADED_IMAGES_DEST, LOG_PATH, LOG_SIZE, LOG_LEVEL, LOG_NAME, STATIC_ROOT, PRODUCT_IMAGE_FOLDER, DATA_ROOT, SQLALCHEMY_DATABASE_URI app = Flask(__name__) app.config.from_object('config') app.jinja_env.line_statement_prefix = '%' #app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI db = SQLAlchemy(app) lm = LoginManager() lm.init_app(app) # Flask-Login needs to know what view logs users in lm.login_view = "login" lm.login_message = lazy_gettext('Please log in to access this page.') babel = Babel(app) import logging from logging.handlers import RotatingFileHandler file_handler = RotatingFileHandler(LOG_PATH, 'a', LOG_SIZE, 10) logger = logging.getLogger(LOG_NAME) app.logger.addHandler(logger) app.logger.addHandler(file_handler) if app.debug: file_handler.setLevel(logging.DEBUG) app.logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG) else: file_handler.setLevel(logging.INFO) app.logger.setLevel(logging.INFO) logger.setLevel(logging.INFO) file_handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'))