Django. Jinja2. Aymeric Augustin DjangoCong 2016

Size: px
Start display at page:

Download "Django. Jinja2. Aymeric Augustin DjangoCong 2016"

Transcription

1 Django Jinja2 Aymeric Augustin DjangoCong 2016 Jardin des Plantes, Avranches, 9 avril 2016

2 I m Aymeric Amalfi Core Developer since 2011 Chief Technical Officer since 2015 Time zones Python 3 Transactions App loading Jinja2 First peer-to-peer insurance broker in France We re hiring! 2

3 Why Jinja2? Aren t Django templates just fine? 3

4 Jinja2 is fast x faster than Django templates. 4 Image from

5 Django templates are slow x slower than Jinja2. 5 Image from

6 Let s try it on the fractalideas.com home page! >>> import statistics, timeit >>> setup = \... "from django.template.loader import render_to_string" >>> round(statistics.median(timeit.repeat(... "render_to_string('home.html', using='django')",... setup, repeat=10, number=1000)), 2) 1.18 # ms >>> round(statistics.median(timeit.repeat(... "render_to_string('home.html', using='jinja2')",... setup, repeat=10, number=1000)), 2) 0.35 # ms 6

7 Let s try it on the fractalideas.com home page! More than three times faster! Not even a millisecond faster. Page loads 0.004% faster with a cold cache. 7

8 Let s try it on the fractalideas.com home page! More than three times faster! Not even a millisecond faster. Page loads 0.02% faster with a warm cache. 8

9 Template rendering speed (often) doesn t matter Light content? Anything is fast enough Heavy static content? Pre-render & cache it Heavy dynamic content? Render in the browser If you re thinking about switching template languages, consider both server-side and client-side options (React) Until you ve optimized everything else, templates are unlikely to be a bottleneck 9

10 Why Jinja2? Aren t Django templates just fine? 10

11 Jinja2 is a modern and designer-friendly templating language for Python, modelled after Django s templates. 11

12 Advantages of Jinja2 More comfortable for developers Django expects templates to be written by designers Easier to customize Try writing a Django template tag without the docs Meaningfully faster in some use cases Template-based widget rendering (#15667) 12

13 Drawbacks of Jinja2 Less common than Django templates Many authors of pluggable apps don t know where to start (yet) Targets experienced developers Docs suggest handling escaping manually for performance Scoping behavior for included blocks is declarative etc. 13

14 Features of Jinja2 from its docs homepage sandboxed execution powerful automatic HTML escaping system for XSS prevention template inheritance compiles down to the optimal python code just in time optional ahead-of-time template compilation easy to debug ( ) configurable syntax sounds important (to me) 14

15 Jinja2 is a templating language for Python designed for experienced developers, modelled after Django s templates. paraphrased from 15

16 Third-party solutions Coffin ( reborn in 2015) Alternative APIs such as render() Jingo (2010) Template loader (class-based API since Django 1.2) Django-Jinja (2012) More opinionated and full-featured template loader 16

17 Templates in Django < 1.8 Discussed for historical purposes only these versions are unsupported! 17

18 Django < Rendering a template # django/template/loaders.py (simplified) def render_to_string(template_name, dictionary): template = get_template(template_name, dirs) context = Context(dictionary) return template.render(context) 18

19 Django < Rendering a template # django/template/loaders.py (simplified) def get_template(template_name): template, origin = find_template(template_name) return Template(template, origin, template_name) 19

20 Django < Rendering a template # django/template/loaders.py (simplified) def find_template(name, dirs=none): global template_source_loaders if template_source_loaders is None:... # init from settings.template_loaders for loader in template_source_loaders:... # try loading with loader(name) raise TemplateDoesNotExist(name) global configuration 20

21 Django < Actually rendering a template # django/shortcuts.py (drastically simplified) def render(request, template_name, dictionary): template = get_template(template_name, dirs) context = RequestContext(request, dictionary) return HttpResponse(template.render(context)) strong coupling 21

22 Context processors are a poor API How many context processors depend on request? Aside from the request context processor, that is. How hard is it to make a context processor lazy? In order to avoid overhead in templates that don t need it. Just an API for {{ global_func(request) }}? Django templates cannot call functions with arguments. 22

23 Multiple templates engines in Django 1.8 If templates weren t boring, they d have been fixed earlier. 23

24 24

25 25

26 26

27 Plan 1. Write a Django Enhancement Proposal (DEP) Lots of reading; some writing 2. Refactor Django templates as a library (optional) Actually not optional 3. Implement the DEP Sounds easy 27

28 Concept django.template.* django.template.loader d.t.backends.django django.template.* d.t.backends.jinja2 jinja2 28

29 this project avoids encoding the legacy of the Django template language in APIs DEP

30 Jinja2 for Djangonauts Wake up this is the just do this section. 30

31 Install Jinja2 $ pip install jinja2 31

32 Define a Jinja2 environment # project/jinja2.py from jinja2 import Environment def environment(**options): options.setdefault('extensions', []).extend([...]) env = Environment(**options) env.filters.update({... }) env.globals.update({... }) env.tests.update({... }) return env 32

33 Install translations (optional) # project/jinja2.py from django.utils import translation def environment(**options): #... env.install_gettext_translations(translation, newstyle=true) #... return env 33

34 Point the TEMPLATES setting to the environment TEMPLATES = [{ 'BACKEND': 'django.template.backends' '.jinja2.jinja2', 'DIRS': [os.path.join(base_dir, 'templates')], 'OPTIONS': { 'environment': 'project.jinja2.environment', }, }, { 'BACKEND': 'django.template.backends' '.django.djangotemplates', 'APP_DIRS': True, }] 34

35 Globals # project/jinja2.py from django.core.urlresolvers import reverse env.globals.update({ }) 'url': reverse, # templates/header.html {{ url('account_login') }} 35

36 Filters # project/jinja2.py from urllib.parse import quote env.filters.update({ }) 'urlquote': quote, # templates/header.html?next={{ request.get_full_path() urlquote }} 36

37 Tests # project/jinja2.py from django.utils.timezone import is_aware env.tests.update({ }) 'aware': is_aware, # templates/datetime.html {% if at is aware %}{{ at.tzname() }}{% endif %} 37

38 Extensions # project/jinja2.py options.setdefault('extensions', []).extend([ 'jinja2.ext.i18n', ]) # or, alternatively: env.add_extension('jinja2.ext.i18n') # templates/header.html {{ gettext("log in") }} 38

39 Jinja2 tips You can go back to sleep the slides will be online. 39

40 Calling methods # Django templates {{ qotd }} # Jinja2 {{ qotd() }} 40

41 Inserting the CSRF token in a form # Django templates {% csrf_token %} # Jinja2 {{ csrf_input }} # Both <input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}" /> 41

42 Replacing a context processor # project/jinja2.py from django.contrib.messages import get_messages env.globals.update({ }) 'get_messages': get_messages, 42

43 Replacing a context processor # templates/header.html {% for message in get_messages(request) %} <div>{{ message }}</div> {% endfor %} 43

44 Replacing a context processor - alternative # project/jinja2.py from django.contrib.messages import def _get_messages(context): return get_messages(context['request']) env.globals.update({ }) 'get_messages': _get_messages, 44

45 Replacing a context processor - alternative # templates/header.html {% for message in get_messages() %} <div>{{ message }}</div> {% endfor %} 45

46 Replacing a template tag # spam/templatetags.py from django import template register = def eat_spam(context, arg1, arg2): #... return html 46

47 Replacing a template tag # templates/spam.html {% load spam %} {% eat_spam arg1 arg2 %} 47

48 Replacing a template tag # def eat_spam(context, arg1, arg2): #... return html # and register it in env.globals as shown above. 48

49 Replacing a template tag # templates/spam.html {{ eat_spam(arg1, arg2) }} 49

50 Most extensions only add globals # eat/jinja2.py class EatExtension(Extension): def init (self, env): env.globals['eat'] = {'spam': eat_spam} # templates/eat.html {{ eat.spam() }} 50

51 Thank you! Questions? Estuaire de la Sée, Avranches, 9 avril 2016

django-gollum Documentation

django-gollum Documentation django-gollum Documentation Release 1.0.0 Luke Sneeringer December 11, 2016 Contents 1 Installation 3 2 Dependencies 5 3 Getting Started 7 4 Getting Help 9 5 License 11 6 Index 13 6.1 Using django-gollum...........................................

More information

Let s Talk About Templates. Armin

Let s Talk About Templates. Armin Let s Talk About Templates Armin Ronacher @mitsuhiko Templates why are we discussing templates in 2014? In 2011 we all thought single page applications are the future Cloud Performance > Phone Performance

More information

LECTURE 14. Web Frameworks

LECTURE 14. Web Frameworks LECTURE 14 Web Frameworks WEB DEVELOPMENT CONTINUED Web frameworks are collections of packages or modules which allow developers to write web applications with minimal attention paid to low-level details

More information

The Django Web Framework Part II. Hamid Zarrabi-Zadeh Web Programming Fall 2013

The Django Web Framework Part II. Hamid Zarrabi-Zadeh Web Programming Fall 2013 The Django Web Framework Part II Hamid Zarrabi-Zadeh Web Programming Fall 2013 2 Outline Overview Making the Front Page Creating the Template Creating View Functions Configuring URL Patterns Finishing

More information

Flask Web Development Course Catalog

Flask Web Development Course Catalog Flask Web Development Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com

More information

django-notifier Documentation

django-notifier Documentation django-notifier Documentation Release 0.7 Siddharth Doshi August 19, 2014 Contents 1 Dependecies 3 2 Contents 5 2.1 Installation & Setup........................................... 5 2.2 Quickstart................................................

More information

Django Debug Toolbar Documentation

Django Debug Toolbar Documentation Django Debug Toolbar Documentation Release 0.11 Rob Hudson, Jannis Leidel, David Cramer, Aymeric Augustin and November 11, 2013 Contents i ii CHAPTER 1 Installation 1. The recommended way to install the

More information

Django_template3d Documentation

Django_template3d Documentation Django_template3d Documentation Release 0.0.1 Robert Steckroth August 27, 2016 Contents 1 Getting Started 3 1.1 Quick Install............................................... 3 2 Learning Template3d 5 2.1

More information

Django-Select2 Documentation. Nirupam Biswas

Django-Select2 Documentation. Nirupam Biswas Nirupam Biswas Mar 07, 2018 Contents 1 Get Started 3 1.1 Overview................................................. 3 1.2 Installation................................................ 3 1.3 External Dependencies..........................................

More information

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last

More information

nacelle Documentation

nacelle Documentation nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2

More information

django-subdomains Documentation

django-subdomains Documentation django-subdomains Documentation Release 2.1.0 ted kaemming April 29, 2016 Contents 1 Installation 3 2 Quick Start 5 2.1 Example Configuration.......................................... 5 3 Basic Usage

More information

CSE 115. Introduction to Computer Science I

CSE 115. Introduction to Computer Science I CSE 115 Introduction to Computer Science I Road map Review Limitations of front-end sites Web servers Examples Review

More information

LECTURE 14. Web Frameworks

LECTURE 14. Web Frameworks LECTURE 14 Web Frameworks WEB DEVELOPMENT CONTINUED Web frameworks are collections of packages or modules which allow developers to write web applications with minimal attention paid to low-level details

More information

django-xross Documentation

django-xross Documentation django-xross Documentation Release 0.6.0 Igor idle sign Starikov Jan 14, 2018 Contents 1 Description 3 2 Requirements 5 3 Table of Contents 7 3.1 Quickstart................................................

More information

Django with Python Course Catalog

Django with Python Course Catalog Django with Python Course Catalog Enhance Your Contribution to the Business, Earn Industry-recognized Accreditations, and Develop Skills that Help You Advance in Your Career March 2018 www.iotintercon.com

More information

Django Test Utils Documentation

Django Test Utils Documentation Django Test Utils Documentation Release 0.3 Eric Holscher July 22, 2016 Contents 1 Source Code 3 2 Contents 5 2.1 Django Testmaker............................................ 5 2.2 Django Crawler.............................................

More information

Django QR Code Documentation

Django QR Code Documentation Django QR Code Documentation Release 0.3.3 Philippe Docourt Nov 12, 2017 Contents: 1 Django QR Code 1 1.1 Installation................................................ 1 1.2 Usage...................................................

More information

Building Web Applications

Building Web Applications Building Web Applications Ambient intelligence Fulvio Corno Politecnico di Torino, 2017/2018 Goal Create simple web applications In Python For interactive interfaces For server-side components Learn a

More information

Django: Views, Templates, and Sessions

Django: Views, Templates, and Sessions Django: Views, Templates, and Sessions CS 370 SE Practicum, Cengiz Günay (Some slides courtesy of Eugene Agichtein and the Internets) CS 370, Günay (Emory) Django Views/Templates Spring 2014 1 / 7 Agenda

More information

django-debreach Documentation

django-debreach Documentation django-debreach Documentation Release 1.4.1 Luke Pomfrey October 16, 2016 Contents 1 Installation 3 2 Configuration 5 2.1 CSRF token masking (for Django < 1.10)................................ 5 2.2 Content

More information

django-renderit Documentation

django-renderit Documentation django-renderit Documentation Release 1.2 jsoares Nov 20, 2017 Contents 1 Installation 3 2 Getting Started 5 2.1 Basic Usage............................................... 5 2.2 Extra Arguments.............................................

More information

HOW TO FLASK. And a very short intro to web development and databases

HOW TO FLASK. And a very short intro to web development and databases HOW TO FLASK And a very short intro to web development and databases FLASK Flask is a web application framework written in Python. Created by an international Python community called Pocco. Based on 2

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

wagtailmenus Documentation

wagtailmenus Documentation wagtailmenus Documentation Release 2.12 Andy Babic Nov 17, 2018 Contents 1 Full index 3 1.1 Overview and key concepts....................................... 3 1.1.1 Better control over top-level menu

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers

More information

Amyyon customers can t wait to get their hands on it s new application, developed in Uniface.

Amyyon customers can t wait to get their hands on it s new application, developed in Uniface. customers can t wait to get their hands on it s new application, developed in Uniface. 1 CUSTOMER SECTOR Information Technology COUNTRY Netherlands CHALLENGE Migrate the rich functionality of a client/server

More information

Django urls Django Girls Tutorial

Django urls Django Girls Tutorial Django urls Django Girls Tutorial about:reader?url=https://tutorial.djangogirls.org/en/django_urls/ 1 di 6 13/11/2017, 20:01 tutorial.djangogirls.org Django urls Django Girls Tutorial DjangoGirls 6-8 minuti

More information

The Pyramid Web Application Development Framework

The Pyramid Web Application Development Framework The Pyramid Web Application Development Framework www.pylonsproject.org Martin Geisler Dealini July 4th, 2013 1 / 20 Outline Introduction Handling a Request Routes Views Renderers Mako Templates Conclusion

More information

"Stupid Easy" Scaling Tweaks and Settings. AKA Scaling for the Lazy

Stupid Easy Scaling Tweaks and Settings. AKA Scaling for the Lazy "Stupid Easy" Scaling Tweaks and Settings AKA Scaling for the Lazy I'm Lazy (and proud of it) The Benefits of "Lazy" Efficiency is king Dislike repetition Avoid spending a lot of time on things A Lazy

More information

Django Extra Views Documentation

Django Extra Views Documentation Django Extra Views Documentation Release 0.12.0 Andrew Ingram Nov 30, 2018 Contents 1 Features 3 2 Table of Contents 5 2.1 Getting Started.............................................. 5 2.2 Formset Views..............................................

More information

django-sticky-uploads Documentation

django-sticky-uploads Documentation django-sticky-uploads Documentation Release 0.2.0 Caktus Consulting Group October 26, 2014 Contents 1 Requirements/Installing 3 2 Browser Support 5 3 Documentation 7 4 Running the Tests 9 5 License 11

More information

CS61A Notes Week 13: Interpreters

CS61A Notes Week 13: Interpreters CS61A Notes Week 13: Interpreters Read-Eval Loop Unlike Python, the result of evaluating an expression is not automatically printed. Instead, Logo complains if the value of any top-level expression is

More information

django-contact-form Documentation

django-contact-form Documentation django-contact-form Documentation Release 1.4.2 James Bennett Aug 01, 2017 Installation and configuration 1 Installation guide 3 2 Quick start guide 5 3 Contact form classes 9 4 Built-in views 13 5 Frequently

More information

Unifer Documentation. Release V1.0. Matthew S

Unifer Documentation. Release V1.0. Matthew S Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................

More information

flask-jwt-simple Documentation

flask-jwt-simple Documentation flask-jwt-simple Documentation Release 0.0.3 vimalloc rlam3 Nov 17, 2018 Contents 1 Installation 3 2 Basic Usage 5 3 Changing JWT Claims 7 4 Changing Default Behaviors 9 5 Configuration Options 11 6 API

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

django-stored-messages Documentation

django-stored-messages Documentation django-stored-messages Documentation Release 1.4.0 evonove Nov 10, 2017 Contents 1 Features 3 2 Compatibility table 5 3 Contents 7 3.1 Installation................................................ 7 3.2

More information

Easy-select2 Documentation

Easy-select2 Documentation Easy-select2 Documentation Release 1.2.2 Lobanov Stanislav aka asyncee September 15, 2014 Contents 1 Installation 3 2 Quickstart 5 3 Configuration 7 4 Usage 9 5 Reference 11 5.1 Widgets..................................................

More information

django-baton Documentation

django-baton Documentation django-baton Documentation Release 1.0.7 abidibo Nov 13, 2017 Contents 1 Features 3 2 Getting started 5 2.1 Installation................................................ 5 2.2 Configuration...............................................

More information

Django-CSP Documentation

Django-CSP Documentation Django-CSP Documentation Release 3.0 James Socol, Mozilla September 06, 2016 Contents 1 Installing django-csp 3 2 Configuring django-csp 5 2.1 Policy Settings..............................................

More information

Pluggable Patterns. For Reusable Django Applications

Pluggable Patterns. For Reusable Django Applications Pluggable Patterns For Reusable Django Applications Project Project Configuration URL routing Templates Project Application Application Application Application Application Application Application Application

More information

micawber Documentation

micawber Documentation micawber Documentation Release 0.3.4 charles leifer Nov 29, 2017 Contents 1 examples 3 2 integration with web frameworks 5 2.1 Installation................................................ 5 2.2 Getting

More information

Application Design and Development: October 30

Application Design and Development: October 30 M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact

More information

Bricks Documentation. Release 1.0. Germano Guerrini

Bricks Documentation. Release 1.0. Germano Guerrini Bricks Documentation Release 1.0 Germano Guerrini January 27, 2015 Contents 1 Requirements 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2 Basic Usage...............................................

More information

TailorDev Contact Documentation

TailorDev Contact Documentation TailorDev Contact Documentation Release 0.3 Julien Maupetit November 06, 2013 Contents 1 Django TailorDev Contact 3 1.1 Dependencies............................................... 3 1.2 Installation................................................

More information

django-baton Documentation

django-baton Documentation django-baton Documentation Release 1.3.1 abidibo Nov 05, 2018 Contents 1 Features 3 2 Getting started 5 2.1 Installation................................................ 5 2.2 Configuration...............................................

More information

Web Security IV: Cross-Site Attacks

Web Security IV: Cross-Site Attacks 1 Web Security IV: Cross-Site Attacks Chengyu Song Slides modified from Dawn Song 2 Administrivia Lab3 New terminator: http://www.cs.ucr.edu/~csong/sec/17/l/new_terminator Bonus for solving the old one

More information

Building a Django Twilio Programmable Chat Application

Building a Django Twilio Programmable Chat Application Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities

More information

alphafilter Documentation

alphafilter Documentation alphafilter Documentation Release 0.6 coordt September 09, 2013 CONTENTS i ii alphafilter Documentation, Release 0.6 Contents: CONTENTS 1 alphafilter Documentation, Release 0.6 2 CONTENTS CHAPTER ONE

More information

Week - 01 Lecture - 04 Downloading and installing Python

Week - 01 Lecture - 04 Downloading and installing Python Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and

More information

django-scaffold Documentation

django-scaffold Documentation django-scaffold Documentation Release 1.1.1 James Stevenson May 27, 2015 Contents 1 Installation 3 2 Creating an app to extend scaffold 5 2.1 1. Create a new application........................................

More information

DJOAuth2 Documentation

DJOAuth2 Documentation DJOAuth2 Documentation Release 0.6.0 Peter Downs Sep 27, 2017 Contents 1 Important Links 1 2 What is DJOAuth2? 3 3 Why use DJOAuth2? 5 4 What is implemented? 7 5 Quickstart Guide 9 5.1 Requirements...............................................

More information

django-ad-code Documentation

django-ad-code Documentation django-ad-code Documentation Release 1.0.0 Mark Lavin Apr 21, 2018 Contents 1 Installation 3 2 Documentation 5 3 License 7 4 Contributing 9 5 Contents 11 5.1 Getting Started..............................................

More information

web.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.

web.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. web.py Tutorial Tom Kelliher, CS 317 1 Acknowledgment This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. 2 Starting So you know Python and want to make

More information

CS1520 Recitation: Security in Flask

CS1520 Recitation: Security in Flask CS1520 Recitation: Security in Flask Jeongmin Lee Slide contents based on a post by Damyan Bogoev at: https://damyanon.net/post/flask-series-security/ Plan for Today XSS (Cross Site Scripting) CSRF (Cross-Site

More information

Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology

Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology React QUICK START QUICK START ADVANCED GUIDES React QUICK START Installation Hello World Introducing JSX Components and Props

More information

Release 0.8. Repoze Developers

Release 0.8. Repoze Developers pyramid b eakerdocumentation Release 0.8 Repoze Developers July 04, 2015 Contents 1 Overview 1 2 Installation 3 3 Setup 5 4 Usage 7 4.1 Session management........................................... 7

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

Django Better Cache Documentation

Django Better Cache Documentation Django Better Cache Documentation Release 0.7.0 Calvin Spealman February 04, 2016 Contents 1 Table of Contents 3 1.1 bettercache template tags......................................... 3 1.2 CacheModel...............................................

More information

Programming Robots with ROS, Morgan Quigley, Brian Gerkey & William D. Smart

Programming Robots with ROS, Morgan Quigley, Brian Gerkey & William D. Smart Programming Robots with ROS, Morgan Quigley, Brian Gerkey & William D. Smart O Reilly December 2015 CHAPTER 23 Using C++ in ROS We chose to use Python for this book for a number of reasons. First, it s

More information

django-celery Documentation

django-celery Documentation django-celery Documentation Release 2.5.5 Ask Solem Nov 19, 2017 Contents 1 django-celery - Celery Integration for Django 3 1.1 Using django-celery........................................... 4 1.2 Documentation..............................................

More information

wagtailmenus Documentation

wagtailmenus Documentation wagtailmenus Documentation Release 2.11 Andy Babic Aug 02, 2018 Contents 1 Full index 3 1.1 Overview and key concepts....................................... 3 1.1.1 Better control over top-level menu

More information

Intro. Scheme Basics. scm> 5 5. scm>

Intro. Scheme Basics. scm> 5 5. scm> Intro Let s take some time to talk about LISP. It stands for LISt Processing a way of coding using only lists! It sounds pretty radical, and it is. There are lots of cool things to know about LISP; if

More information

EXPERIENCES MOVING FROM DJANGO TO FLASK

EXPERIENCES MOVING FROM DJANGO TO FLASK EXPERIENCES MOVING FROM DJANGO TO FLASK DAN O BRIEN, VP OF ENGINEERING CRAIG LANCASTER, CTO Jana Mobile Inc. www.jana.com WHO WE ARE Jana is a startup company in Boston connecting advertising and marketing

More information

Q2D8T#YH# BYUQTUQ+ *")#+,-./,01#2../,345,67#869,3#47:#+5;<35<;=!"""""""""""# $& B675;6//=;#CD/645E!

Q2D8T#YH# BYUQTUQ+ *)#+,-./,01#2../,345,67#869,3#47:#+5;<35<;=!# $& B675;6//=;#CD/645E! A Publication of Q2D8T#YH# BYUQTUQ+!"#$%&'()*+&,(%!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""# $% -"#.%&,/01&&2'%3#4#523(6*&,(% """"""""""""""""""""""""""""""""""""# $& *")#+,-./,01#2../,345,67#869,3#47:#+5;

More information

Simple AngularJS thanks to Best Practices

Simple AngularJS thanks to Best Practices Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it

More information

29-27 May 2013 CERN WEB FRAMEWORKS. Adrian Mönnich

29-27 May 2013 CERN WEB FRAMEWORKS. Adrian Mönnich First Indico Workshop 29-27 May 2013 CERN WEB FRAMEWORKS Adrian Mönnich Framework? What? Do we have one? Do we need one? A web application framework is a software framework that is designed to support

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Eric Kutschera University of Pennsylvania March 6, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 March 6, 2015 1 / 22 Outline 1 Web Servers

More information

Web 2.0 and AJAX Security. OWASP Montgomery. August 21 st, 2007

Web 2.0 and AJAX Security. OWASP Montgomery. August 21 st, 2007 Web 2.0 and AJAX Security OWASP Montgomery August 21 st, 2007 Overview Introduction Definition of Web 2.0 Basics of AJAX Attack Vectors for AJAX Applications AJAX and Application Security Conclusions 1

More information

django-cms-search Documentation

django-cms-search Documentation django-cms-search Documentation Release 0.6.2 Divio GmbH February 04, 2016 Contents 1 Requirements 3 2 Usage 5 2.1 Customizing the Index.......................................... 5 3 Helpers 7 3.1 {%

More information

wagtailtrans Documentation

wagtailtrans Documentation wagtailtrans Documentation Release 0.1.0 LUKKIEN Jul 27, 2018 Contents 1 Table of contents 3 1.1 Getting started.............................................. 3 1.2 Migrate your existing Wagtail site....................................

More information

CSE : Python Programming. Decorators. Announcements. The decorator pattern. The decorator pattern. The decorator pattern

CSE : Python Programming. Decorators. Announcements. The decorator pattern. The decorator pattern. The decorator pattern CSE 399-004: Python Programming Lecture 12: Decorators April 9, 200 http://www.seas.upenn.edu/~cse39904/ Announcements Projects (code and documentation) are due: April 20, 200 at pm There will be informal

More information

HTML 5: Fact and Fiction Nathaniel T. Schutta

HTML 5: Fact and Fiction Nathaniel T. Schutta HTML 5: Fact and Fiction Nathaniel T. Schutta Who am I? Nathaniel T. Schutta http://www.ntschutta.com/jat/ @ntschutta Foundations of Ajax & Pro Ajax and Java Frameworks UI guy Author, speaker, teacher

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 07 Tutorial 2 Part 1 Facebook API Hi everyone, welcome to the

More information

Analysis of Hypertext Isolation Techniques for Cross-site Scripting Prevention. Mike Ter Louw Prithvi Bisht V.N. Venkatakrishnan

Analysis of Hypertext Isolation Techniques for Cross-site Scripting Prevention. Mike Ter Louw Prithvi Bisht V.N. Venkatakrishnan Analysis of Hypertext Isolation Techniques for Cross-site Scripting Prevention Mike Ter Louw Prithvi Bisht V.N. Venkatakrishnan Outline Motivation Hypertext isolation Design challenges Conclusion Quote

More information

BOOSTING THE SECURITY OF YOUR ANGULAR 2 APPLICATION

BOOSTING THE SECURITY OF YOUR ANGULAR 2 APPLICATION BOOSTING THE SECURITY OF YOUR ANGULAR 2 APPLICATION Philippe De Ryck NG-BE Conference, December 9 th 2016 https://www.websec.be ABOUT ME PHILIPPE DE RYCK My goal is to help you build secure web applications

More information

Cascading Style Sheets for layout II CS7026

Cascading Style Sheets for layout II CS7026 Cascading Style Sheets for layout II CS7026 Understanding CSS float The CSS float property is also a very important property for layout. It allows you to position your Web page designs exactly as you want

More information

Web Security: Vulnerabilities & Attacks

Web Security: Vulnerabilities & Attacks Computer Security Course. Web Security: Vulnerabilities & Attacks Type 2 Type 1 Type 0 Three Types of XSS Type 2: Persistent or Stored The attack vector is stored at the server Type 1: Reflected The attack

More information

Django Wordpress API Documentation

Django Wordpress API Documentation Django Wordpress API Documentation Release 0.1.0 Swapps Jun 28, 2017 Contents 1 Django Wordpress API 3 1.1 Documentation.............................................. 3 1.2 Quickstart................................................

More information

django-amp-tools Documentation Release latest

django-amp-tools Documentation Release latest django-amp-tools Documentation Release latest February 07, 2017 Contents 1 Installation 3 2 Usage 5 2.1 Usage app................................................ 5 3 Contributing 9 4 Source code and contacts

More information

gocept.selenium Release 3.0

gocept.selenium Release 3.0 gocept.selenium Release 3.0 Feb 12, 2018 Contents 1 Environment variables 3 2 Jenkins integration 5 3 Tips & Tricks 7 3.1 Using a custom Firefox profile...................................... 7 3.2 Using

More information

django-ratelimit-backend Documentation

django-ratelimit-backend Documentation django-ratelimit-backend Documentation Release 1.2 Bruno Renié Sep 13, 2017 Contents 1 Usage 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

django-dajaxice Documentation

django-dajaxice Documentation django-dajaxice Documentation Release 0.7 Jorge Bastida Nov 17, 2017 Contents 1 Documentation 3 1.1 Installation................................................ 3 1.2 Quickstart................................................

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #13. Loops: Do - While

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #13. Loops: Do - While Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #13 Loops: Do - While So far we have been using while loops in C, now C programming language also provides you

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Wakanda Architecture Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Note: For a more general overview of Wakanda, please see What is Wakanda?) Wakanda

More information

preppy Documentation Release ReportLab

preppy Documentation Release ReportLab preppy Documentation Release 2.5.0 ReportLab Dec 25, 2017 Contents 1 Why another templating system? 3 2 Quick Start 5 3 Template syntax 7 4 Module import options 11 4.1 File system semantics..........................................

More information

4. Java Project Design, Input Methods

4. Java Project Design, Input Methods 4-1 4. Java Project Design, Input Methods Review and Preview You should now be fairly comfortable with creating, compiling and running simple Java projects. In this class, we continue learning new Java

More information

django-embed-video Documentation

django-embed-video Documentation django-embed-video Documentation Release 0.6.stable Juda Kaleta October 04, 2013 CONTENTS i ii Django app for easy embeding YouTube and Vimeo videos and music from SoundCloud. Repository is located on

More information

Consolidation and Review

Consolidation and Review Consolidation and Review Professor Hugh C. Lauer CS-1004 Introduction to Programming for Non-Majors (Slides include materials from Python Programming: An Introduction to Computer Science, 2 nd edition,

More information

Django Part II SPARCS 11 undead. Greatly Inspired by SPARCS 10 hodduc

Django Part II SPARCS 11 undead. Greatly Inspired by SPARCS 10 hodduc Django Part II 2015-05-27 SPARCS 11 undead Greatly Inspired by SPARCS 10 hodduc Previously on Django Seminar Structure of Web Environment HTTP Requests and HTTP Responses Structure of a Django Project

More information

Senior Technical Specialist, IBM. Charles Price (Primary) Advisory Software Engineer, IBM. Matthias Falkenberg DX Development Team Lead, IBM

Senior Technical Specialist, IBM. Charles Price (Primary) Advisory Software Engineer, IBM. Matthias Falkenberg DX Development Team Lead, IBM Session ID: DDX-15 Session Title: Building Rich, OmniChannel Digital Experiences for Enterprise, Social and Storefront Commerce Data with Digital Data Connector Part 2: Social Rendering Instructors: Bryan

More information

Accelerating Information Technology Innovation

Accelerating Information Technology Innovation Accelerating Information Technology Innovation http://aiti.mit.edu/program/philippines-summer-2012/ Philippines Summer 2012 Lecture 4 Django Views and Templates June 28, 2012 Agenda Django Views Django

More information

Django File Picker Documentation

Django File Picker Documentation Django File Picker Documentation Release 0.5 Caktus Consulting Group LLC Nov 06, 2017 Contents 1 Dependencies 3 1.1 Required................................................. 3 1.2 Optional.................................................

More information

django-report-tools Documentation

django-report-tools Documentation django-report-tools Documentation Release 0.2.1 Evan Brumley Jul 20, 2017 Contents 1 Contents 3 1.1 Getting Started.............................................. 3 1.2 Charts...................................................

More information

django-facebook-graph Documentation

django-facebook-graph Documentation django-facebook-graph Documentation Release 0.1 FEINHEIT GmbH Mar 29, 2017 Contents 1 Installation 3 1.1 Add 'facebook' to your INSTALLED_APPS............................ 3 1.2 Add the middlewares...........................................

More information

django-oauth2-provider Documentation

django-oauth2-provider Documentation django-oauth2-provider Documentation Release 0.2.7-dev Alen Mujezinovic Aug 16, 2017 Contents 1 Getting started 3 1.1 Getting started.............................................. 3 2 API 5 2.1 provider.................................................

More information

Lotus IT Hub. Module-1: Python Foundation (Mandatory)

Lotus IT Hub. Module-1: Python Foundation (Mandatory) Module-1: Python Foundation (Mandatory) What is Python and history of Python? Why Python and where to use it? Discussion about Python 2 and Python 3 Set up Python environment for development Demonstration

More information

django-precise-bbcode Documentation

django-precise-bbcode Documentation django-precise-bbcode Documentation Release 1.0.x Morgan Aubert Aug 12, 2018 Contents 1 Features 3 2 Using django-precise-bbcode 5 2.1 Getting started.............................................. 5 2.2

More information