Last active
December 25, 2015 07:49
-
-
Save jmhobbs/6942394 to your computer and use it in GitHub Desktop.
Issue with Flask 0.10.1 documentation as written.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import sys | |
from flask import Flask, url_for | |
app = Flask(__name__) | |
@app.route("/") | |
def index(): | |
return url_for('take_me_to_flask', ignore_me="okay"), | |
def lookup_url(endpoint, **values): | |
'''Mock method for docs example to load.''' | |
if endpoint == 'take_me_to_flask': | |
return 'http://flask.pocoo.org/' | |
else: | |
return None | |
def external_url_handler(error, endpoint, values): | |
print values | |
url = lookup_url(endpoint, **values) | |
if url is None: | |
# External lookup did not have a URL. | |
# Re-raise the BuildError, in context of original traceback. | |
exc_type, exc_value, tb = sys.exc_info() | |
if exc_value is error: | |
raise exc_type, exc_value, tb | |
else: | |
raise error | |
# url_for will use this result, instead of raising BuildError. | |
return url | |
app.url_build_error_handlers.append(external_url_handler) | |
if __name__ == '__main__': | |
app.run(debug=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import sys | |
from flask import Flask, url_for | |
app = Flask(__name__) | |
@app.route('/') | |
def index(): | |
return url_for('take_me_to_flask', ignore_me="okay") | |
def lookup_url(endpoint, **values): | |
'''Mock method for docs example to load.''' | |
if endpoint == 'take_me_to_flask': | |
return 'http://flask.pocoo.org/' | |
else: | |
return None | |
################################## | |
## Start code copied from API docs | |
def external_url_handler(error, endpoint, **values): | |
"Looks up an external URL when `url_for` cannot build a URL." | |
# This is an example of hooking the build_error_handler. | |
# Here, lookup_url is some utility function you've built | |
# which looks up the endpoint in some external URL registry. | |
url = lookup_url(endpoint, **values) | |
if url is None: | |
# External lookup did not have a URL. | |
# Re-raise the BuildError, in context of original traceback. | |
exc_type, exc_value, tb = sys.exc_info() | |
if exc_value is error: | |
raise exc_type, exc_value, tb | |
else: | |
raise error | |
# url_for will use this result, instead of raising BuildError. | |
return url | |
app.build_error_handler = external_url_handler | |
################################## | |
## End code copied from API docs | |
if __name__ == '__main__': | |
app.run(debug=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
127.0.0.1 - - [11/Oct/2013 16:23:38] "GET / HTTP/1.1" 500 - | |
Traceback (most recent call last): | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__ | |
return self.wsgi_app(environ, start_response) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app | |
response = self.make_response(self.handle_exception(e)) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception | |
reraise(exc_type, exc_value, tb) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app | |
response = self.full_dispatch_request() | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request | |
rv = self.handle_user_exception(e) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception | |
reraise(exc_type, exc_value, tb) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request | |
rv = self.dispatch_request() | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request | |
return self.view_functions[rule.endpoint](**req.view_args) | |
File "/home/jmhobbs/Desktop/example/per_documentation.py", line 12, in index | |
return url_for('take_me_to_flask', ignore_me="okay") | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/helpers.py", line 312, in url_for | |
return appctx.app.handle_url_build_error(error, endpoint, values) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/app.py", line 1641, in handle_url_build_error | |
reraise(exc_type, exc_value, tb) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/flask/helpers.py", line 305, in url_for | |
force_external=external) | |
File "/home/jmhobbs/Desktop/example/venv/lib/python2.7/site-packages/werkzeug/routing.py", line 1620, in build | |
raise BuildError(endpoint, values, method) | |
BuildError: ('take_me_to_flask', {'ignore_me': 'okay'}, None) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Flask==0.10.1 | |
Jinja2==2.7.1 | |
MarkupSafe==0.18 | |
Werkzeug==0.9.4 | |
argparse==1.2.1 | |
distribute==0.6.24 | |
itsdangerous==0.23 | |
wsgiref==0.1.2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment