django on jython, pycon 2009

Download Django on Jython, PyCon 2009

If you can't read please download the document

Upload: leonardo-soto

Post on 16-Apr-2017

2.201 views

Category:

Technology


0 download

TRANSCRIPT

Django on Jython

Jim Baker

Leo Soto

Jython Status

Shipped 2.5
(beta3)

Greatly improved compatibility

setuptools

virtualenv

nose

etree

web2py

Django + Jython:
Why?

Installing this Django app...

...in an Enterprise Infrastructure

http://www.flickr.com/photos/purpleslog/231478071

(I mean, this kind of enterprise infrastructure)

Didn't work quite well

http://www.flickr.com/photos/21054697@N03/2053923652

Guess howmuch time ittook

http://www.flickr.com/photos/21054697@N03/2053923652

We like Python

They need Java

Jython

http://www.flickr.com/photos/vicintosh87/2618725412/

Avoiding Java

Sneaking Python

Is that it?

No, it is more than that!

(if you want)

Examples...

Python/Django

Install Django

Install 3rd party deps

Install app(s)

Tweak settings.py

Configure web server

Make sure everything is consistent

Steps to Deploy a Web Application

Java

Copy/upload WAR package

Steps to Deploy a Web Application

Java libs can eat complex Excel data!

http://www.flickr.com/photos/purpleslog/231478071

We can reuse what's good on the Java ecosystem!

Django + Jython:
Architecture

The cool side of Java

System Programming

Concurrency Model

Memory Model

http://www.flickr.com/photos/purpleslog/231478071

$ jython2.5

...

>>> from __future__ import GIL

$ jython2.5

...

>>> from __future__ import GIL

Traceback (most recent call last):
(no code object) at line 0
File "", line 1

SyntaxError:

Never going to happen!

On the other hand...

J2EE was a big, horrible mistake

The right tool for the right job!

http://www.flickr.com/photos/dipster1/1403240351

Java:

Performance,
Heavy lifting,
Pre-existing infrastructure

Jython:

Everything else :)

Deployment

App Servers:

Already there,
lots of features

http://flickr.com/photos/tomloudon/322172413/sizes/l/

Let's use their force!

Deployment Options

Java app servers - show some horizontal scaling; also management - sys admins know how to do this!

Hardened - it runs on the JVM

vs Google App Engine

Its Django 1.0

We have Unicode, internationalization, ORM, unit tests, admin, shell, everything!

And we can use Java analogues:

BigTable HBase, Hypertable

MapReduce Hadoop

Add pictures for app engine, HBase, Hadoop

WAR!

Web ARchive format

Standard deployment for Java app servers

Just a bunch of files with a standard directory layout and manifest

$ jython manage.py war

--include-java-libs=jdbcdriver.jar

100%
self-contained!

WAR format for DoJ

|-- WEB-INF

| |-- lib

| `-- lib-python

| |-- Lib

| |-- django

| |-- doj

| `-- mysite

`-- media

super simple bundling!

IDE Integration

Again, why?

Quick Start!

Let PeopleExplore

Re-factoring

One place torule them all

Let see how that'd be with Django...

Demo

Summary

Questions?

Thanks!

Jim's Blog: http://www.zyasoft.com/pythoneering/

Leo's Blog:
http://blog.leosoto.com

Twitter: jimbaker, leosoto

http://www.flickr.com/photos/purpleslog/231478071

http://www.flickr.com/photos/21054697@N03/2053923652

http://www.flickr.com/photos/vicintosh87/2618725412

http://www.flickr.com/photos/dipster1/1403240351

Images used under CC license