This is a guide for how new blueprints should be defined and styled for this project. 

Context:
Blueprints are the flask version of components. It defines a related set of funtions, paired with urls, all under a 
url subdomain. These are essential in defining new parts of code while maintaining structure and modularity. Everything
inside of a blueprint is essentially standalone, and does not affect code outside of the blueprint. 

Creating a new blueprint:
1. Create a new folder in the api subdirectory. The name of this blueprint should be snake case.

2. In this file, create two files, __init__.py and views.py. the __init__ file allows flask to see this as a blueprint, 
    while views.py is where the routing logic should go. 
    a. In __init__.py, copy the format of the example_blueprint, or the following:

    from flask import Blueprint 
    example = Blueprint( 'example', __name__ ) # Constructor where 'example' is the name of the blueprint
    from . import views # imports all of the routes from views

    b. in views.py, some example code would be: 

    from flask import jsonify
    from . import example_blueprint
    #from models import {Attempted model import}

    @example.route('/')
    def index():
        # Code here
        return ""

    @example.route('/get')
    def get():
        # Code here
        return ""

    where the route will have the url of the desired endpoint.

3. Finally, add this blueprint with the parent level __init__.py, with the line: 
    app.register_blueprint( example, url_prefix="/example" )
    The first argument is the name of the object created in the __init__.py file of the blueprint, and the url_prefix is 
    the prefix added to all of the routes in the local views.py folder.

