Offline Django Apps

504 views
Skip to first unread message

Rob Hudson

unread,
May 22, 2007, 2:20:12 PM5/22/07
to Django users
I have a need for a way to run Django-based websites offline as an
installable application. I recently read about Joyent Slingshot:
http://developer.joyent.com/

I'm curious if there are others who could use this functionality but
for Django. If so, perhaps we can all collaborate and come up with a
solution that runs on Mac, Windows, and Linux. Data syncing would be
nice but can come later.

A big bootstrap and proof of concept is most definitely DjangoKit:
http://jerakeen.org/blog/2007/04/djangokit-gets-better/

Thanks,
Rob

James Bennett

unread,
May 22, 2007, 2:57:10 PM5/22/07
to django...@googlegroups.com
On 5/22/07, Rob Hudson <trebor...@gmail.com> wrote:
> I'm curious if there are others who could use this functionality but
> for Django. If so, perhaps we can all collaborate and come up with a
> solution that runs on Mac, Windows, and Linux. Data syncing would be
> nice but can come later.

I'd be interested, certainly. Not sure I have much to contribute in
the way of desktop programming skills, but I can think of more than a
couple uses for such a thing and I'll happily do whatever I can.

--
"Bureaucrat Conrad, you are technically correct -- the best kind of correct."

Robert Coup

unread,
May 22, 2007, 6:15:45 PM5/22/07
to django...@googlegroups.com
James Bennett wrote:
> On 5/22/07, Rob Hudson <trebor...@gmail.com> wrote:
>
>> I'm curious if there are others who could use this functionality but
>> for Django. If so, perhaps we can all collaborate and come up with a
>> solution that runs on Mac, Windows, and Linux. Data syncing would be
>> nice but can come later.
>>
> I'd be interested, certainly. Not sure I have much to contribute in
> the way of desktop programming skills, but I can think of more than a
> couple uses for such a thing and I'll happily do whatever I can.
>
Put my name down as well, we have a couple of uses for it I can think of.

Rob :)

--
One Track Mind Ltd.
PO Box 1604, Shortland St, Auckland, New Zealand
Phone +64-9-966 0433 Mobile +64-21-572 632
Web http://www.onetrackmind.co.nz


Rob Hudson

unread,
May 22, 2007, 6:47:49 PM5/22/07
to Django users
Cool. What's the best way to coordinate the effort? A wiki page to
start with?

Coming up in the next month or so I'm going to have to dedicate work
time to this but for now I'd like to just lay out the groundwork and
do it in such a way that it benefits the Django community.

1) Cross Platform Libraries...

In looking at DjangoKit a little I see he's using PyObjC. I do like
the idea of using whatever the native widget library is for each
platform. I'll have to look at the Democracy Player as an example but
they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).

2) Database...

It makes sense to me to require SQLite for this to work. Moving your
data to SQLite is also a requirement for Slingshot. I'm pretty sure
we can use the fixtures library to serialize data from databases other
than SQLite (MySQL, PostGreSQL), then load it up into SQLite.

3) Anything else?

Thanks,
Rob

Robert Coup

unread,
May 22, 2007, 9:51:27 PM5/22/07
to django...@googlegroups.com
Rob Hudson wrote:
> Cool. What's the best way to coordinate the effort? A wiki page to
> start with?
>
Current trends seem to be to use Google Code for projects that aren't
likely to become part of the core django distro. A link from the Django
wiki is probably a good idea though.

> 1) Cross Platform Libraries...
>
> In looking at DjangoKit a little I see he's using PyObjC. I do like
> the idea of using whatever the native widget library is for each
> platform. I'll have to look at the Democracy Player as an example but
> they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).
>
wxWidgets is one cross-platform option. PyGTK runs on windows too.

> 2) Database...
>
> It makes sense to me to require SQLite for this to work. Moving your
> data to SQLite is also a requirement for Slingshot. I'm pretty sure
> we can use the fixtures library to serialize data from databases other
> than SQLite (MySQL, PostGreSQL), then load it up into SQLite.
>
Yeah, that's perfectly reasonable IMHO.

Rob :)

Tom

unread,
May 23, 2007, 7:11:48 AM5/23/07
to Django users
On May 22, 11:47 pm, Rob Hudson <treborhud...@gmail.com> wrote:
>
> 1) Cross Platform Libraries...
>
> In looking atDjangoKita little I see he's using PyObjC. I do like

> the idea of using whatever the native widget library is for each
> platform. I'll have to look at the Democracy Player as an example but
> they did something similar (Mac: PyObjC, Linux: PyGTK, Windows: ???).

DjangoKit is a native-widgets project, and will probably stay that
way. I very much like the idea of Windows and linux-specific native-
widget projects to complement it. The core of the thing was very easy
to write - the hardest part was getting the packaging system to
behave, so there probably won't be a lot of effort duplicated between
the platforms here.

> 2) Database...
>
> It makes sense to me to require SQLite for this to work. Moving your
> data to SQLite is also a requirement for Slingshot. I'm pretty sure
> we can use the fixtures library to serialize data from databases other
> than SQLite (MySQL, PostGreSQL), then load it up into SQLite.

This, on the other hand, _can_ be shared nicely. And has nothing to do
with a GUI wrapper. A framework that will do 2-way sync between 2
django applications / databases can be worked on in the absence of
working wrappers.

> 3) Anything else?

(a) One thing I've been finding is that many django apps I've found
aren't really written as apps, but tend to be tied very heavily to the
project they're developed in. I've only just joined django-users, so
maybe this is covered a lot. But because djangokit provides it's own
project and expects the thing you're packaging to be a stand-alone
app, it's hard to find nice demos.

(b We're going to find lots and lots of different deployed versions of
the app's DB schema in the wild, so upgrades will be nasty. With
proper 2-way sync, you could just tell the remote user to sync, blow
away their DB, then re-sync, but if you're trying to write a simple
stand-alone app, you'll need upgrade scripts.

tom

Baurzhan Ismagulov

unread,
May 27, 2007, 8:57:02 AM5/27/07
to django...@googlegroups.com
On Tue, May 22, 2007 at 06:20:12PM -0000, Rob Hudson wrote:
> I have a need for a way to run Django-based websites offline as an
> installable application.
...

> I'm curious if there are others who could use this functionality but
> for Django. If so, perhaps we can all collaborate and come up with a
> solution that runs on Mac, Windows, and Linux. Data syncing would be
> nice but can come later.

FWIW, http://www.gnuenterprise.org/ is said to provide this kind of
functionality -- ORM, Forms running in different environments (including
web), Reports, your business logic in a separate place, everything in
Python. I didn't have the time to play more with it, so I can't tell how
that looks like, but I would be interested to see both using a common
ORM and GNUe being able to use Django as a web front-end framework.

With kind regards,
--
Baurzhan Ismagulov
http://www.kz-easy.com/

Tom

unread,
May 30, 2007, 12:08:59 PM5/30/07
to Django users

On May 23, 2:51 am, Robert Coup <robert.c...@onetrackmind.co.nz>
wrote:


> Rob Hudson wrote:
> > Cool. What's the best way to coordinate the effort? A wiki page to
> > start with?
>
> Current trends seem to be to use Google Code for projects that aren't
> likely to become part of the core django distro. A link from the Django
> wiki is probably a good idea though.

I've created a google code project - http://code.google.com/p/djangokit/
- anyone who cares is welcome to membership.

tom

Vagmi Mudumbai

unread,
May 31, 2007, 4:20:08 AM5/31/07
to django...@googlegroups.com
Check out Google Gears. http://gears.google.com
--
http://installneo.blogspot.com

"Peace is its own reward." - Mahatma Gandhi

Rob Hudson

unread,
May 31, 2007, 1:28:58 PM5/31/07
to Django users
On May 31, 1:20 am, "Vagmi Mudumbai" <vagmi.mudum...@gmail.com> wrote:
> Check out Google Gears.http://gears.google.com

There's a lot of interesting things about Google Gears...

It provides a browser local SQLite accessible via Javascript.

It provides a local HTTP server for storing/retrieving cached content.

Simon Willison dug up some interesting Google Gears tidbits:
http://simonwillison.net/tags/googlegears/
including:
Adobe's Apollo will use Google Gears technology, Dojo was in on the
Google Gears collaboration uses it.

Looks like a lot is happening in the world of offline web
applications.

Great stuff.

-Rob

Reply all
Reply to author
Forward
0 new messages