def get_db(database=None): database = conf.MONGODB_DB mongo = MongoEngine() mongo.connect(database, host=conf.MONGODB_HOST, port=conf.MONGODB_PORT, username=conf.MONGODB_USER, password=conf.MONGODB_PASSWD) return mongo
def get_db(database=None): database = conf.MONGODB_DB mongo = MongoEngine() mongo.connect( database, host=conf.MONGODB_HOST, port=conf.MONGODB_PORT, username=conf.MONGODB_USER, password=conf.MONGODB_PASSWD ) return mongo
def get_mongoDB(): """ this function avoids circular referencing when dealing with MongoEngine, or any other database Import this to any module/file/function using mongo: from db.db import get_mongoDB """ if 'db' not in g: # connect to mongoEngine and load configuration settings from config.py mongo = MongoEngine() dbVersion = current_app.config["MONGODB_SETTINGS"]["db"] mongo.connect(dbVersion, connect=False) # print(vars(g)) # print(dir(mongo)) # save database into flask's "g" variable g.db = mongo.get_db() return g.db
def get_db(): ## initialize / refresh DB post-fork for server performance global db if db is None: db = MongoEngine() db.init_app(app) db.connect(connectTimeoutMS=30000, socketTimeoutMS=None, socketKeepAlive=True, connect=False, maxPoolsize=1) else: db.connect(connectTimeoutMS=30000, socketTimeoutMS=None, socketKeepAlive=True, connect=False, maxPoolsize=1) return db
# This module is used as part of unit and functional testing. Making database connection with the testing database. import os from flask_mongoengine import MongoEngine import json import sys here = os.path.dirname(os.path.abspath(__file__)) filename = os.path.join(here, './../testenv.json') with open(filename) as file: test_env_details = json.load(file) mongo = MongoEngine() mongo.connect(test_env_details['testEnvInfo']['db-name'], host=test_env_details['testEnvInfo']['db-host'])
# -*- coding: utf-8 -*- import datetime from flask_mongoengine import MongoEngine, ValidationError from flask_security import UserMixin, RoleMixin from werkzeug.security import check_password_hash from . import settings # Create database connection object and instantiation of mongodb db = MongoEngine() db.connect('project1', host=settings.MONGO_DATABASE_URI) class Role(db.Document, RoleMixin): name = db.StringField(max_length=80, unique=True) description = db.StringField(max_length=255) class User(db.Document, UserMixin): email = db.StringField(required=True, max_length=255, unique=True) password = db.StringField(max_length=255) username = db.StringField(max_length=255) active = db.BooleanField(default=True) confirmed_at = db.DateTimeField() roles = db.ListField(db.ReferenceField(Role), default=[]) @staticmethod def validate_login(password_hash, password): return check_password_hash(password_hash, password) def get_roles(self):
from flask_login import UserMixin from flask_mongoengine import MongoEngine import datetime mongo_db = MongoEngine() mongo_db.connect("test") class User(UserMixin, mongo_db.DynamicDocument): meta = {'collection': 'admin_user', 'indexes': ['email', 'password']} first_name = mongo_db.StringField(max_length=40) last_name = mongo_db.StringField(max_length=40) email = mongo_db.StringField(max_length=40, unique=True) password = mongo_db.StringField() can_create = mongo_db.BooleanField(default=False) can_edit = mongo_db.BooleanField(default=False) can_delete = mongo_db.BooleanField(default=False) can_export = mongo_db.BooleanField(default=False) can_import = mongo_db.BooleanField(default=False) is_admin = mongo_db.BooleanField() is_view1 = mongo_db.BooleanField() is_view2 = mongo_db.BooleanField() is_view3 = mongo_db.BooleanField() insert_date = mongo_db.DateTimeField(default=datetime.datetime.utcnow) def __unicode__(self, ): return self.email User = User() User.first_name = 'Priya'
from flask import Flask from flask_mongoengine import MongoEngine from apis import api from config import get_config app = Flask(__name__) db = MongoEngine() CONFIG = get_config() db.connect(db=CONFIG["mongodb"]["db_name"], username=CONFIG["mongodb"]["username"], password=CONFIG["mongodb"]["password"], host=CONFIG["mongodb"]["host"], port=CONFIG["mongodb"]["port"], authentication_source=CONFIG["mongodb"]["auth_source"]) api.init_app(app) app.run(host="0.0.0.0", port=5000, debug=True)
from flask import Flask from config import Config from flask_mongoengine import MongoEngine, MongoEngineSessionInterface from flask_swagger_ui import get_swaggerui_blueprint app = Flask(__name__) SWAGGER_URL = '/swagger' SWAGGERUI_BLUEPRINT = get_swaggerui_blueprint( SWAGGER_URL, '/static/api_swagger.yaml', config={'app_name': "api-swagger"}) app.register_blueprint(SWAGGERUI_BLUEPRINT, url_prefix=SWAGGER_URL) app.config.from_object(Config) db = MongoEngine(app) db.connect(**Config.MONGODB_SETTINGS) app.session_interface = MongoEngineSessionInterface(db)
def main(argv): email = '' role = '' action = '' try: opts, args = getopt.getopt(argv, "hu:r:", ["email=", "role="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt == '-h': usage() sys.exit() elif opt in ("-u", "--email"): email = arg elif opt in ("-r", "--role"): role = arg if len(args) == 0: usage() sys.exit() action = args[0] if not email: usage() sys.exit(2) if not role: usage() sys.exit(2) db = MongoEngine() db.connect('project1', host='mongodb://localhost:27017/pulse') class Role(db.Document, RoleMixin): name = db.StringField(max_length=80, unique=True) description = db.StringField(max_length=255) class User(db.Document, UserMixin): email = db.StringField(required=True, max_length=255, unique=True) password = db.StringField(max_length=255) username = db.StringField(max_length=255) active = db.BooleanField(default=True) confirmed_at = db.DateTimeField() roles = db.ListField(db.ReferenceField(Role), default=[]) @staticmethod def validate_login(password_hash, password): return check_password_hash(password_hash, password) def get_roles(self): return [r.name.encode("utf-8") for r in self.roles] # Setup Flask-Security user_datastore = MongoEngineUserDatastore(db, User, Role) # Add a role to a user def add_role(user, role): added_role = user_datastore.find_or_create_role(role) user_datastore.add_role_to_user(user, added_role) print("Added {0} role to user {1}".format(role, email)) # Remove a role from a user def remove_role(user, role): added_role = user_datastore.find_or_create_role(role) user_datastore.remove_role_from_user(user, added_role) print("Removed {0} role from user {1}".format(role, email)) func, params = { 'add': (add_role, (email, role)), 'remove': (remove_role, (email, role)) }.get(action, (specify, ('Action is not properly. Please select add or remove', ))) func(*params)