[Django]-Python Web Framework for Small Team

4đź‘Ť

âś…

I think most of the big frameworks will fit your requirements so maybe you might look at it from the perspective of the app you are writing. How much do you want to work “out of the box”. Will you need user management? Will you need an admin panel etc.

I use Django and it’s great when you don’t want to rewrite a lot of boilerplate. It can be a bit tedious at times trying to bend it to do what you want, but once you get your head around it’s intricacies , you can get things done very quickly.

With Django anyway:

  • MVC (Strict or not)

    Not MVC, but similar > http://www.djangobook.com/en/2.0/chapter05/#cn16

  • Small Team (2-3 people included one designer)

    not sure how the framework will effect this, but yes, it’s quick to develop on your own or with a team via version control

  • Fun to use

    well there’s a lot of great documentation, so less time is spent pulling your hair out, and you can get going very quickly which is nice

  • REST support

    Yes, as a library: > https://bitbucket.org/jesperndjjango-piston/wiki/Home

  • Multilevel caching (DB query, page cache)

    Yep > https://docs.djangoproject.com/en/dev/topics/cache/?from=olddocs

  • Nginx Support (X-Accel-Redirect File Download)

    Again, not sure this is relevant, but yes. I use nginx with UWSGI and it’s very quick

  • Heavy traffic (1,200,000 ~ views)

    Yes > Does Django scale?

  • Urls rewriting (Multi-domains support not only subdomain)

    Not sure about this

  • Not a problem if it’s not hype

    It’s no node-js, but again, lots of really good documentation

  • Not a problem if there is no plugins

    There are …. my god there are

  • Either SQL or NOSQL (can be fun to try NOSQL)

    SQL out of the box, but NOSQL is supported > http://www.allbuttonspressed.com/projects/django-nonrel

3đź‘Ť

In addition to the other frameworks mentioned (which are all good options), you should check out web2py. It’s a feature-packed, full-stack framework that’s very easy to set up, learn, and use. It was originally inspired by Ruby on Rails, so if you’re rewriting an RoR application, you may find it more comfortable than some of the other Python frameworks. Here are some details regarding your requirements:

The framework is under very active development (new releases every 2-4 weeks), yet is committed to maintaining backward compatibility, so existing apps won’t break upon upgrade. If you have any questions, you’ll get lots of help from the friendly and responsive mailing list.

👤Anthony

1đź‘Ť

I would recommend DJANGO or TurboGears.

0đź‘Ť

I don’t think you can go wrong with any of the major web frameworks. Personally I’ve used Django the most and would lean that way, the ORM is really great and it’s philosophies/design are closely aligned with my own personal preference. However, if you wanted to go a different route, bottle is a really fun lightweight microframework, I’ve found it a pleasure to develop with. If you want to go the NoSQL route, MongoDB has great Python support. PyMongo is excellent (and the recommended way to use MongoDB from Python), MongoEngine is a nice little ORM (if you care for that sort of thing).

👤Zach Kelling

0đź‘Ť

Of the frameworks you’ve mentioned, Django has the most momentum and is most likely to fit your ideals of a framework, coming from a Rails background. By this I mean it has helpers that allow you to generate your forms quickly, though no scaffolding. (In fact, Django’s way is a little better than scaffolding in Rails because you can use all or just pieces of it)

It has a good ORM with lots of helper methods and, one of the best features, it has a fully functional admin interface once you define your models. You can start porting data even while the site is being developed.

It also provides excellent user support, including permissions, access control, groups, user profiles.

It’s easy (and fun) to create your own middleware and context processors that let you abstract out often reused pieces as plugins to the framework.

The only feature Django doesn’t have that you specified above is the NoSQL support. And this is only half true. If you want to use a non relational database for some parts of your app, such as session storage, you can. If you want to use it as your exclusive backend you’ll lose some of Django’s awesome features unless you patch Django with django-nonrel.

I’ve used turbo gears which is a combination of several of the other options you mentioned. That community has some great people in it but they’re currently experiencing a major architecture revamp and honestly, they’re just not getting as much developer attention as Django.

👤newz2000

Leave a comment