You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							1.7 KiB
						
					
					
				| from flask import Flask | |
| from config import Config | |
| from flask_sqlalchemy import SQLAlchemy | |
| from flask_migrate import Migrate | |
| from flask_bootstrap import Bootstrap | |
| import logging | |
| from logging.handlers import SMTPHandler, RotatingFileHandler | |
| import os | |
|  | |
| app = Flask(__name__) | |
| app.config.from_object(Config) | |
| db = SQLAlchemy(app) | |
| migrate = Migrate(app, db) | |
| bootstrap = Bootstrap(app) | |
|  | |
|  | |
| from app import routes, models, errors, database_cleaner | |
|  | |
| if not app.debug: | |
|     # Mail errors | |
|     if app.config['MAIL_SERVER']: | |
|         auth = None | |
|         if app.config['MAIL_USERNAME'] or app.config['MAIL_PASSWORD']: | |
|             auth = (app.config['MAIL_USERNAME'], app.config['MAIL_PASSWORD']) | |
|         secure = None | |
|         if app.config['MAIL_USE_TLS']: | |
|             secure = () # The secure argument is an empty tuple to use TLS without providing a specific certificate and key. | |
|         mail_handler = SMTPHandler( | |
|                 mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']), | |
|                 fromaddr='no-reply@' + app.config['MAIL_SERVER'], | |
|                 toaddrs=app.config['ADMINS'], subject='Microblog Failure', | |
|                 credentials=auth, secure=secure) | |
|         mail_handler.setLevel(logging.ERROR) | |
|         app.logger.addHandler(mail_handler) | |
|     # Log to File | |
|     if not os.path.exists('logs'): | |
|         os.mkdir('logs') | |
|     file_handler = RotatingFileHandler('logs/linkshortener.log', maxBytes=10240, backupCount=10) | |
|     file_handler.setFormatter(logging.Formatter( | |
|         '%(asctime)s %(levelname)s: %(message)s')) | |
|     file_handler.setLevel(logging.INFO) | |
|     app.logger.addHandler(file_handler) | |
|  | |
|     app.logger.setLevel(logging.INFO) | |
|     app.logger.info('Link Shortener startup') | |
|  | |
| database_cleaner.start_scheduler()
 | |
| 
 |