On Fri, Oct 10, 2008 at 12:34 PM, mguthrie <[EMAIL PROTECTED]> wrote:
>
> I've been looking into Django for building something that is more web
> application than it is website.  I understand that Django has been
> developed in a sort of CMS mindset but to date I haven't found any
> reason why it couldn't create non-content centric web apps as well.
>
> My project requirements are as follows:
>
> 1.) I need to be able to host this project for multiple clients.  No
> customization, just everybody using the same thing.  Therefore ideally
> they should all share the same codebase.
> 2.) Each client should have their own user table/authentication since
> I want client A to be able to have a user named john.doe and client B
> to as well.  I would not mind if they shared the same table but they
> needed to provide a client id so the login can differentiate.
> 3.) Media should be separate per client.  Client A media should not be
> mixed with Client B or vice versa.
> 4.) Database either needs to be single db per client or one large db
> with multiple prefixed tables per client.  So each client would get
> their own users table (or shared table with client id field), tables
> for data, etc.
>
> I've researched the options available and here's what I've found
> (correct me if I'm wrong):
> 1.) I can host each client separately by providing a different
> <Location> for each and specifying a different settings file.  This
> should allow me to specify separate DB's, media locations, etc but I'm
> concerned about the overhead of hosting them.  I've read that for each
> instance of Django requires another python interpreter.  If that is
> the case wouldn't I run out of RAM quickly hosting several clients?
> Is there a way I can do this using only one instance of Django?  If I
> use Django with multiple <Location>'s per client would that be one
> Django instance or multiple?  Is mod_python not the way to go for this
> project?
> 2.) I can use django.contrib.sites but every client shares the
> authentication.  Is there a way I can specify a client id to
> distinguish Client A's john.doe from Client B's?  If I do this can I
> specify where media for either would go?  How about they all share the
> same DB but have different table prefixes?
>
> I know it's a lot but I wanted to be as specific as I could so I don't
> waste someone's time. Is Django probably the wrong framework for this
> project?  Should this be a Pylons/Turbogears thing or what?
>
> All ideas/critiques/reworkings will be accepted.  Thanks in advance.
>
> -MG
>

Django is quite capable of doing everything you described.  You've
almost answered your own question because hosting separate django
instances under different <Location> directives (or virtual hosts)
seems like the ideal solution.  I wouldn't worry too much about the
overhead of multiple python interpreters -- if python is using shared
libraries, they will use a little extra ram, but I doubt they will
exhaust your system resources before something else does.  I don't
have any numbers to back this, but I've run several django instances
on a single host with no problem, and it seems to be fairly common
practice.

Colin

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to