GithubHelp home page GithubHelp logo

Comments (5)

pedersen avatar pedersen commented on June 6, 2024

Original Author: pedersen, Original Timestamp: 2011-03-28 02:47:03.024000

Original Body: Currently, TG 2.1rc1 does not come with a templating engine for JSONP.

You can add a render function this:

from tg import json_encode, response
from tg.render import _get_tg_vars

def render_jsonp(template_name, template_vars, **kwargs):
callback = template_name or kwargs.pop('callback', None) or 'callback'
for key in _get_tg_vars():
del template_vars[key]
response.headers['Content-Type'] = 'text/javascript'
return '%s(%s)' % (template_name, json_encode(template_vars))

from myapp.config.app_cfg import base_config
base_config.render_functions['jsonp'] = render_jsonp
base_config.mimetype_lookup = {'.jsonp': 'text/javascript'}

But this reveals two shortcomings:

  1. In this case, we don't want any templating vars, and need to remove them using the undocumented function _get_tg_vars(). It would be better and more performant if the templating vars would not be included in the first place. But unfortunately, the templating engines which don't use templating vars are hard coded in TG (currently 'json' and 'amf') in two places in tg.decorators and tg.render. This should be made configurable.
  2. I don't see a way of defining a default content type for the render function, so I have to set it directly on the response object which is really not nice. The render functions should not touch the request or response objects.
  3. After fixing 1. and 2. we may think about adding a JSONP renderer to the core.

from tg2.

pedersen avatar pedersen commented on June 6, 2024

Original Author: pedersen, Original Timestamp: 2011-06-11 20:45:10.005000

Original Body: - milestone: 2.1.1 --> 2.2.0

from tg2.

pedersen avatar pedersen commented on June 6, 2024

Original Author: pedersen, Original Timestamp: 2012-08-24 01:39:59.712000

Original Body: - version: 2.1.0 --> 2.1.5

  • milestone: 2.2.0 --> 2.3.0

from tg2.

amol- avatar amol- commented on June 6, 2024

4bad6da provides support for JSONP renderer, previous commits provided support for 1. and 2.

from tg2.

amol- avatar amol- commented on June 6, 2024

Documentation for JSONP available at http://turbogears.readthedocs.org/en/development/cookbook/jsonp.html

from tg2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.