Re: [google-appengine] Re: How to use the same variable in two handlers?
With what you want to do there IS NO difference in doing it in Django templates then in Mako templates. That will result in a hatred awards Mako too. 2011/1/23 Zeynel : > Unfortunately, I have an irrational hatred for Django templates so I > am trying to do this with Mako templates. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
If you're trying to do this using Mako templates, here is a fully functional 'demo' that you should be able to easily adapt to do exactly what you're asking about. app.yaml handlers: - url: /makodemo.* script: makodemo.py login: admin makodemo.py --- #!/usr/bin/env python from google.appengine.ext import webapp from google.appengine.ext.webapp.util import run_wsgi_app from mako.lookup import TemplateLookup from mako import exceptions class DemoMakoTemplateHandler(webapp.RequestHandler): """Simple demo using mako templates.""" def __init__(self, **kwargs): webapp.RequestHandler.__init__(self, **kwargs) self.template_values = {'message': ''} def render(self, template_name, values=None): """Setup search paths, and render the template. Any values passed in will be combined with self.template_values, and passed to the template. """ directories = ['templates'] lookup = TemplateLookup(directories=directories) template = lookup.get_template(template_name) if values: self.template_values.update(values) try: self.response.out.write(template.render(**self.template_values)) except: self.response.out.write(exceptions.html_error_template().render()) def get(self): """Render the template.""" self.render("demo.mako") def post(self): """Get the user's message then render the template again.""" message = self.request.get('message') self.render("demo.mako", {'message': message}) def main(): application = webapp.WSGIApplication([('/makodemo', DemoMakoTemplateHandler)], debug=True) run_wsgi_app(application) if __name__ == '__main__': main() demo.mako - Mako Demo Last message was: ${ message } Make sure you've went through the app engine getting started and really looked at how things work carefully. No matter which template language you chose, be sure to review their docs too. http://code.google.com/appengine/docs/python/gettingstarted/introduction.html http://www.makotemplates.org/docs/ Robert On Sat, Jan 22, 2011 at 23:06, Zeynel wrote: > On Jan 22, 10:35 pm, Robert Kluin wrote: >> So, if you are getting 'type=' twice, did you think about trying: >> self.redirect("/dir?%s" % urllib.urlencode({ "type" : >> self.request.get("dir_type") } )) > > Yes, actually I thought about that but I did not try it because I did > not get > > /dir?type=type=tshirt > > but just /dir?type=type= > > without the url parameter. But I may be wrong so I will try. But now I > am working on trying to make this work with templates as explained > here: > http://stackoverflow.com/questions/4769063/how-do-i-pass-url-parameter-to-form-value > > Unfortunately, I have an irrational hatred for Django templates so I > am trying to do this with Mako templates. Researching this I found an > old answer of yours: > http://stackoverflow.com/questions/3938963/mako-templates-with-google-app-engine/3939208#3939208. > Thanks again for that answer. At this point my template page is > printing as text like this > > <�html> <�body> <�p>Render template<�/p> ${greeting} <�/body> <�/html> > > so I am going to try to fix that first and then try the urllib option. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
So, if you are getting 'type=' twice, did you think about trying: self.redirect("/dir?%s" % urllib.urlencode({ "type" : self.request.get("dir_type") } )) On Sat, Jan 22, 2011 at 20:33, Zeynel wrote: > On Jan 22, 8:02 pm, djidjadji wrote: > >> 'type' is between quotes ==> a string. >> Has nothing to do with a variable or a function object. > > I understand this. If I use this solution the url is always > > /dir?type=type= > > "type" is not replaced with the merchandise_type. Maybe I am not using > it correctly? > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
'type' is between quotes ==> a string. Has nothing to do with a variable or a function object. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
urllib.urlencode() should be used to quote the parameter If Directory() is processed after DirectorySubmitHandler() you can NEVER get the merchandise_type variable. And it is possibly handled in another app instance. dir_type = merchandise_type # remove this line dir_type is never used in DirectorySubmitHandler() import urllib self.redirect("/dir?%s" % urllib.urlencode({ 'type' : self.request.get("dir_type") } ) -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
Hi Zeynel, You'll have to show us how you are rendering the form. If you're using template, just pass the value you get for type to your template and print the value, like djidjadji said. Robert On Sat, Jan 22, 2011 at 10:01, Zeynel wrote: > On Jan 22, 12:53 pm, djidjadji wrote: >> >> >> instead of ### print the value of the variable merchandise_type >> > Thanks, but I don't understand. The value of the url parameter is > given by > > self.request.get("type", "") > > I cannot put this value in the value="###" field. Then what is in the > value field? > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: How to use the same variable in two handlers?
instead of ### print the value of the variable merchandise_type 2011/1/22 Zeynel : > On Jan 22, 12:07 pm, djidjadji wrote: > >> Make merchandise_type a hidden field of the form generated by >> Directory() and get the value in the DirectorySubmitHandler(). > > > Ok. I have the hidden field in the form in Directory like this: > > > > but how do I get that > > the value of the "merchandise_type" in the DirectorySubmitHandler? > > self.request.get("dir_type") is "merchandise_type" not the url > parameter? > > Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.