flask_negotiation Package¶
flask_negotiation Package¶
content_negotiation¶
Provides better content-negotiation for flask.
-
class
flask_negotiation.__init__.Render(renderers=(<flask_negotiation.renderers.TemplateRenderer object>, ))[source]¶ Bases:
objectDynamic function class renders content.
-
class
flask_negotiation.__init__.MediaType(raw)[source]¶ Bases:
objectAbstracted media type class.
-
quality¶
-
-
flask_negotiation.__init__.provides(media_type, *args, **kwargs)[source]¶ Decorator that recognizes acceptablility of view function. For example:
from flask.ext.negotiation.decorators import provides @app.route('/json_only') @provides('application/json') def json_only(): return json.dumps({'text':'JSON Mraz'})
And you can provide multiple types like this:
from flask.ext.negotiation.decorators import provides @app.route('/json_and_html') @provides('text/html', 'application/json') def json_and_html(): data = get_data() return render(data)
Or you can use renderer:
from flask.ext.negotiation.renderes import template_renderer from flask.ext.negotiation.decorators import provides @app.route('/json_and_html') @provides(template_renderer, 'application/json') def json_and_html(): data = get_data() return render(data)
And you can handle choosen media type:
from flask.ext.negotiation.decorators import provides @provides('application/json', 'text/html', to='provide_type') def handle_type(provide_type): return str(provide_type)
to does not guarantee same media type with render function.
decorators Module¶
decorators — Decorators for Flask views¶
-
flask_negotiation.decorators.provides(media_type, *args, **kwargs)[source]¶ Decorator that recognizes acceptablility of view function. For example:
from flask.ext.negotiation.decorators import provides @app.route('/json_only') @provides('application/json') def json_only(): return json.dumps({'text':'JSON Mraz'})
And you can provide multiple types like this:
from flask.ext.negotiation.decorators import provides @app.route('/json_and_html') @provides('text/html', 'application/json') def json_and_html(): data = get_data() return render(data)
Or you can use renderer:
from flask.ext.negotiation.renderes import template_renderer from flask.ext.negotiation.decorators import provides @app.route('/json_and_html') @provides(template_renderer, 'application/json') def json_and_html(): data = get_data() return render(data)
And you can handle choosen media type:
from flask.ext.negotiation.decorators import provides @provides('application/json', 'text/html', to='provide_type') def handle_type(provide_type): return str(provide_type)
to does not guarantee same media type with render function.
media_type Module¶
media_type¶
HTTP media type
-
class
flask_negotiation.media_type.MediaType(raw)[source]¶ Bases:
objectAbstracted media type class.
-
quality¶
-
-
flask_negotiation.media_type.acceptable_media_types(request)[source]¶ Extract acceptable media types from request
-
flask_negotiation.media_type.best_renderer(renderers, media_types)[source]¶ Choose best renderer and media type
-
flask_negotiation.media_type.can_accept(acceptables, media_types)[source]¶ Determines acceptablility. :param acceptables: list of media type acceptable :param media_types: list of media type supported
renderers Module¶
content_negotiation.renderers¶
Renderers
-
class
flask_negotiation.renderers.FunctionRenderer(fn, media_types)[source]¶ Bases:
flask_negotiation.renderers.RendererRenders object with a function.
-
class
flask_negotiation.renderers.JSONRenderer(encoder=<json.encoder.JSONEncoder object>)[source]¶ Bases:
flask_negotiation.renderers.RendererRenders object to json with JSONEncoder.
-
class
flask_negotiation.renderers.Renderer[source]¶ Bases:
objectBase renderer class.
-
media_types¶ Collections of abstracted media-types.
-
-
class
flask_negotiation.renderers.TemplateRenderer(ext='html')[source]¶ Bases:
flask_negotiation.renderers.RendererRenders object to HTML response.