KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm trying to use flask.g to store variables that can be accessed in other functions, but I don't seem to be doing something correctly. The application generates the following error when I try to access g.name : AttributeError: '_RequestGlobals' object has no attribute 'name' . The documentation for flask.g says: Just store on this whatever you want. For example a database connection or the user that is currently logged in. Here's a complete, minimal example that illustrates the error that I receive when trying to access the variable outside of the function it was created in. Any help would be greatly appreciated. #!/usr/bin/env python from flask import Flask, render_template_string, request, redirect, url_for, g from wtforms import Form, TextField application = app = Flask('wsgi') @app.route('/', methods=['GET', 'POST']) def index(): form = LoginForm(request.form) if request.method == 'POST' and form.validate(): name = form.name.data g.name = name # Need to create an instance of a class and access that in another route #g.api = CustomApi(name) return redirect(url_for('get_posts')) else: return render_template_string(template_form, form=form) @app.route('/posts', methods=['GET']) def get_posts(): # Need to access the instance of CustomApi here #api = g.api name = g.name return render_template_string(name_template, name=name) class LoginForm(Form): name = TextField('Name') template_form = """ {% block content %} <h1>Enter your name</h1> <form method="POST" action="/"> <div>{{ form.name.label }} {{ form.name() }}</div><br> <button type="submit" class="btn">Submit</button> </form> {% endblock %} """ name_template =
Tags (comma-separated)
Save Edits
Cancel