Base module API

This is the flask_mongoengine main modules API documentation.

flask_mongoengine.connection module

Module responsible for connection setup.

function flask_mongoengine.connection._get_name(setting_name)

Return known pymongo setting name, or lower case name for unknown. This problem was discovered in issue #451. As mentioned there, pymongo settings are not case-sensitive, but mongoengine uses the exact name of some settings for matching, overwriting pymongo behaviour.

function flask_mongoengine.connection._remove_mongodb_prefix(config)

Remove MONGODB_ prefix from dict values, to correct bypass to mongoengine.

function flask_mongoengine.connection.create_connections(config)

Given Flask application's config dict, extract relevant config vars out of it and establish MongoEngine connection(s) based on them.

function flask_mongoengine.connection.get_connection_settings(config)

Given Flask application's config dict, extract and return connection settings.

flask_mongoengine.db_fields module

Responsible for mongoengine fields extension, if WTForms integration is used.

class flask_mongoengine.db_fields.WtfFieldMixin

Extension wrapper class for mongoengine BaseField. This enables flask-mongoengine wtf to extend the number of field parameters, and settings on behalf of document model form generator for WTForm.

Class variables:

  • DEFAULT_WTF_CHOICES_FIELD — Default WTForms Field used for db fields when choices option specified.
  • DEFAULT_WTF_FIELD — Default WTForms Field used for db field.
class flask_mongoengine.db_fields.BinaryField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.BinaryField with wtf required parameters. All arguments should be passed as keyword arguments.

to_wtf_field(*, model=None, field_kwargs=None)

Protection from execution of to_wtf_field() in form generation.

Raises: NotImplementedError – Field converter to WTForm Field not implemented.

class flask_mongoengine.db_fields.BooleanField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.BooleanField with wtf required parameters. All arguments should be passed as keyword arguments.

class flask_mongoengine.db_fields.CachedReferenceField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.CachedReferenceField with wtf required parameters. All arguments should be passed as keyword arguments.

to_wtf_field(*, model=None, field_kwargs=None)

Raises: NotImplementedError – Field converter to WTForm Field not implemented.

class flask_mongoengine.db_fields.ComplexDateTimeField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.ComplexDateTimeField with wtf required parameters. During WTForm generation this field uses wtforms.fields.DateTimeLocalField with milliseconds accuracy.

class flask_mongoengine.db_fields.DateField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.DateField with wtf required parameters. All arguments should be passed as keyword arguments.

class flask_mongoengine.db_fields.DateTimeField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.DateTimeField with wtf required parameters. All arguments should be passed as keyword arguments.

class flask_mongoengine.db_fields.DecimalField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.DecimalField with wtf required parameters. Extends form validators with wtforms.validators.NumberRange.

class flask_mongoengine.db_fields.DictField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.DictField with wtf required parameters. Extends default field options with null bypass.

class flask_mongoengine.db_fields.EmailField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.EmailField with wtf required parameters. Extends form validators with wtforms.validators.Email.

Changed in version 2.0.0: Default form field output changed from NoneStringField to MongoEmailField.

class flask_mongoengine.db_fields.EmbeddedDocumentField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.EmbeddedDocumentField with wtf required parameters.

class flask_mongoengine.db_fields.EmbeddedDocumentListField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.EmbeddedDocumentListField with wtf required parameters.

class flask_mongoengine.db_fields.EnumField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.EnumField with wtf required parameters.

class flask_mongoengine.db_fields.FileField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.FileField with wtf required parameters.

class flask_mongoengine.db_fields.FloatField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.FloatField with wtf required parameters. Extends form validators with wtforms.validators.NumberRange.

Changed in version 2.0.0: Default form field output changed from wtforms.fields.FloatField to MongoFloatField with 'numbers' input type.

class flask_mongoengine.db_fields.IntField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.IntField with wtf required parameters. Extends form validators with wtforms.validators.NumberRange.

class flask_mongoengine.db_fields.ListField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.ListField with wtf required parameters.

class flask_mongoengine.db_fields.ReferenceField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.ReferenceField with wtf required parameters.

class flask_mongoengine.db_fields.SortedListField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.SortedListField with wtf required parameters.

class flask_mongoengine.db_fields.StringField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.StringField with wtf required parameters. By default uses MongoTextAreaField for fields without size, and MongoStringField with Length validator when size is set.

class flask_mongoengine.db_fields.URLField(*, validators=None, filters=None, wtf_field_class=None, wtf_filters=None, wtf_validators=None, wtf_choices_coerce=None, wtf_options=None, **kwargs)

Extends mongoengine.fields.URLField with wtf required parameters.

flask_mongoengine.decorators module

function flask_mongoengine.decorators.wtf_required(func)

Decorator that raises RuntimeError if WTForms is not installed, when decorated method is called.

flask_mongoengine.documents module

class flask_mongoengine.documents.BaseQuerySet(document, collection)

Extends mongoengine.queryset.QuerySet class with handy methods.

get_or_404(*args, _message_404=None, **kwargs)

Get a document and raise a 404 Not Found error if it doesn't exist.

first_or_404(_message_404=None)

Same as get_or_404, but uses first() not get().

paginate(page, per_page)

Paginate the QuerySet with a certain number of docs per page and return docs for a given page.

paginate_field(field_name, doc_id, page, per_page, total=None)

Paginate items within a list field from one document in the QuerySet.

flask_mongoengine.json module

function flask_mongoengine.json._convert_mongo_objects(obj)

Convert objects related to Mongo database to JSON.

function flask_mongoengine.json._make_encoder(superclass)

Extend Flask JSON Encoder 'default' method with support of Mongo objects.

function flask_mongoengine.json.override_json_encoder(app)

Override the Flask application's default JSON encoder with one that supports Mongo objects.

flask_mongoengine.pagination module

class flask_mongoengine.pagination.Pagination(iterable, page, per_page)

Internal helper class returned by BaseQuerySet.paginate(). Provides navigation helpers for paginated results.

iter_pages(left_edge=2, left_current=2, right_current=5, right_edge=2)

Iterate over page numbers in pagination range.

next(error_out=False)

Return a Pagination object for the next page.

prev(error_out=False)

Return a Pagination object for the previous page.

class flask_mongoengine.pagination.ListFieldPagination(queryset, doc_id, field_name, page, per_page, total=None)

Pagination for a list field within a single document. Returned by BaseQuerySet.paginate_field().

flask_mongoengine.panels module

class flask_mongoengine.panels.MongoDebugPanel

Panel that displays MongoDB queries executed during a request. Add to DEBUG_TB_PANELS in your Flask config to enable.

function flask_mongoengine.panels.mongo_command_logger

A pymongo CommandListener instance. Register with pymongo.monitoring.register() before establishing the database connection.

flask_mongoengine.sessions module

class flask_mongoengine.sessions.MongoEngineSessionInterface(db, collection='sessions')

A session interface that uses MongoEngine as the backend. Assign to app.session_interface to enable.

Module contents

class flask_mongoengine.MongoEngine(app=None, config=None)

Main class used for initialization of Flask-MongoEngine.

__init__(app=None, config=None)

Initialize the extension. If app is provided, calls init_app(app) immediately.

init_app(app, config=None)

Initialize the extension for the given Flask app. Sets up database connection and registers JSON encoder override.

connection

Return MongoDB connection(s) associated with this MongoEngine instance.

function flask_mongoengine.current_mongoengine_instance()

Return a MongoEngine instance associated with current Flask app.