In this video tutorial I show how to use Jinja2 Templates on Google App Engine for Python.
app.yaml
[crayon lang="yaml"]
application: gae-tut
version: 1
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /favicon\.ico
static_files: favicon.ico
upload: favicon\.ico
- url: .*
script: main.app
libraries:
- name: webapp2
version: “2.5.1″
- name: jinja2
version: latest
[/crayon]
main.py
[crayon lang="python"]
import webapp2
import cgi
import os
import jinja2
from gaesessions import get_current_session
class MainHandler(webapp2.RequestHandler):
def get(self):
session = get_current_session()
firstName = session.get(‘firstName’, ”)
familyName = session.get(‘familyName’, ”)
message = session.get(‘message’, ”)
jinja_environment = jinja2.Environment(autoescape = True,
loader = jinja2.FileSystemLoader(os.path.join(
os.path.dirname(__file__), ‘templates’)))
tpl_vars = { “message”: message, “firstName”: firstName,
“familyName”: familyName }
template = jinja_environment.get_template(‘index.html’)
self.response.out.write(template.render(tpl_vars))
def post(self):
firstName = self.request.get(“firstName”)
familyName = self.request.get(“familyName”)
session = get_current_session()
session['firstName'] = firstName
session['familyName'] = familyName
session['message'] = ”
if len(firstName) < 2 or len(familyName) < 2:
session['message'] = "First Name and Family Name are mandatory"
self.redirect("/")
self.response.out.write("First Name: " + firstName
+ " Family Name: " + familyName)
app = webapp2.WSGIApplication([('/', MainHandler)],
debug=True)
[/crayon]
templates/index.html
[crayon lang="html"]
Account Details
{{message}}
[/crayon]
Recent Comments