How to reference a html template from a different directory in python flask
Question: 
        @app.route('/view', methods=['GET', 'POST'])
    def view_notifications():
        posts = get_notifications()
        return render_template("frontend/src/view_notifications.html", posts=posts)
    

So in my `project/backend/src/app.py` there's this code. How would I reference
the template that's in `project/frontend/src/view_notifications.html` I've
tried using `..` but it keeps saying the path isn't found. Is there another
way I should be doing this?

    
    
    [Tue Jun 23 12:56:02.597207 2015] [wsgi:error] [pid 2736:tid 140166294406912] [remote 10.0.2.2:248] TemplateNotFound: frontend/src/view_notifications.html
    [Tue Jun 23 12:56:05.508462 2015] [mpm_event:notice] [pid 2734:tid 140166614526016] AH00491: caught SIGTERM, shutting down
    


Answer: Flask is looking in `templates/frontend/src/view_notifications.html` for your
template file. You either need to move your templates file to that location or
change the default template folder.

According to the Flask docs you can specify a different folder for your
templates. It defaults to `templates/` in the root of your app:

    
    
    import os
    from flask import Flask
    
    template_dir = os.path.abspath('../../frontend/src')
    app = Flask(__name__, template_folder=template_dir)
    

UPDATE:

After testing it myself on a Windows machine the templates folder does need to
be named `templates`. This is the code I used:

    
    
    import os
    from flask import Flask, render_template
    
    template_dir = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))
    template_dir = os.path.join(template_dir, 'frontend')
    template_dir = os.path.join(template_dir, 'templates')
    # hard coded absolute path for testing purposes
    working = 'C:\Python34\pro\\frontend\\templates'
    print(working == template_dir)
    app = Flask(__name__, template_folder=template_dir)
    
    
    @app.route("/")
    def hello():
        return render_template('index.html')
    
    if __name__ == "__main__":
        app.run(debug=True)
    

With this structure:

    
    
    |-pro
      |- backend
        |- app.py
      |- frontend
        |- templates
          |- index.html
    

Changing any instance of `'templates'` to `'src'` and renaming the templates
folder to `'src'` resulted in the same error OP received.

