def create_app(): app = Flask(__name__, static_folder="./static", template_folder="./static") CORS(app) bcrypt = flask_bcrypt.Bcrypt(app) # infrastructure initialization and registration init_bd_mysql(app) app.config["hasher"] = bcrypt # error handlers init_authentication_error_handler(app) init_playlists_error_handler(app) init_search_error_handler(app) # blueprint routes registration app.register_blueprint(home) app.register_blueprint(authentication) app.register_blueprint(albums) app.register_blueprint(artists) app.register_blueprint(search) app.register_blueprint(songs) app.register_blueprint(profiles) app.register_blueprint(playlists) app.register_blueprint(artists) return app
def get_hashed_password(password): """ :param password: string (password) :return: empty string if password is empty or bcrypt - generated hash of the password """ if password == "": return password bcrypt = flask_bcrypt.Bcrypt() return bcrypt.generate_password_hash(password)
import flask_bcrypt as _fb import flask_migrate as _fm import flask_sqlalchemy as _fs import json db = _fs.SQLAlchemy() migrate = _fm.Migrate(db=db) bcrypt = _fb.Bcrypt() def init_app(app, **kwargs): db.app = app db.init_app(app) migrate.init_app(app) from sqlalchemy.inspection import inspect class Serializer(object): def serialize(self): return {c: getattr(self, c) for c in inspect(self).attrs.keys()} @staticmethod def serialize_list(l): return [m.serialize() for m in l] from .example import ExampleData
from flask import Flask, render_template, request, redirect import flask_mongoengine import flask_login import flask_bcrypt import os app = Flask(__name__) app.config['MONGODB_SETTINGS'] = {'host': os.environ.get('MONGOLAB_URI', 'mongodb://localhost/demo')} app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'secret-key') db = flask_mongoengine.MongoEngine(app) app.session_interface = flask_mongoengine.MongoEngineSessionInterface(db) flask_bcrypt = flask_bcrypt.Bcrypt(app) login_manager = flask_login.LoginManager() login_manager.init_app(app) from auth import auth app.register_blueprint(auth) from app import auth, models, forms
import ssl import smtplib import threading import email import flask import flask_bcrypt import flask_uploads from urllib.parse import urlparse, urljoin # Note that if a module imports this as only "bcrypt", it will override # the actual `bcrypt` library if imported. To avoid namespace issues, # do instead: `from flasquelistan import util; util.bcrypt(...)` bcrypt = flask_bcrypt.Bcrypt() image_uploads = flask_uploads.UploadSet('images', flask_uploads.IMAGES) def send_email(toaddr, subject, body): """Send an email with SMTP & STARTTLS. Uses the best security defaults according to the python documentation at the time of writing: https://docs.python.org/3/library/ssl.html#ssl-security "[ssl.create_default_context()] will load the system’s trusted CA certificates, enable certificate validation and hostname checking, and try to choose reasonably secure protocol and cipher settings." """ msg = email.message.EmailMessage() msg.set_content(body)
import flask from flaskshop import app # from flaskshop.database import battels # from flaskshop.database import db from flaskshop.database import photo as photo_model # pylint: disable=unused-import from flaskshop.database import membership from flaskshop.helpers import util #DB = db.DB from flaskshop.app import oussshopdb as DB APP = app.APP from werkzeug.security import generate_password_hash, check_password_hash BCRYPT = bcrypt.Bcrypt(APP) class User(DB.Model): """Model for users.""" __tablename__ = 'user' object_id = DB.Column(DB.Integer, primary_key=True) # Class level properties for Flask-Login # # Sessions don't expire, and no users are anonymous, so these can be hard # coded is_authenticated = True is_anonymous = False
import config import flask import flask_bcrypt import flask_login import flask_sqlalchemy tgeni = flask.Flask(__name__) tgeni.config.from_object('config.Config') # set up password encryption crypt = flask_bcrypt.Bcrypt(tgeni) # initialize database settings db = flask_sqlalchemy.SQLAlchemy(tgeni) # initialize login settings login_manager = flask_login.LoginManager() login_manager.login_view = 'signin' login_manager.init_app(tgeni) # expose packages from app import views, models
app.config["ENABLE_BROWSER_HASH_CHECK"] = False app.config["BCRYPT_LOG_ROUNDS"] = 15 # Number Of Rounds To Hash With Bcrypt app.config["JSONIFY_PRETTYPRINT_REGULAR"] = False # Fixes: https://github.com/pallets/flask/issues/2549 # Generate Secret Configs If Not Present instance_folder = pathlib.Path('instance') if not instance_folder.is_dir(): warnings.warn("No Instance Folder: It will now be created") instance_folder.mkdir() conf_file = instance_folder / "config.py" conf_file.write_text("SECRET_KEY='{sk}'".format(sk=os.urandom(64).hex())) app.config.from_pyfile('config.py') # Load Plugins db = flask_sqlalchemy.SQLAlchemy(app) # ORM - Handles Database Operations bcrypt = flask_bcrypt.Bcrypt(app) # Handles Password Hashing ########### # HELPERS # ########### @app.shell_context_processor def make_shell_context() -> Dict: """Helps In Development By Making All Variables Available For Testing""" return globals() @app.cli.command() def init() -> None: """Performs All Functions Needed To Initialise The App