←back to thread

310 points brylie | 6 comments | | HN request time: 0.297s | source | bottom
1. nop_slide ◴[] No.43517655[source]
I appreciate this effort and am surprised by the negative sentiment. I evaluated the big 3 frameworks (Laravel, Django, and Rails) last year and Django felt like the worst of the lot.

I really wanted to like Django more since I use python at $dayjob, but it seemed so far behind Laravel and Rails terms of DX and features. Also the ecosystem seemed fragmented and a lot of packages looked stale.

For example, I remember having to piece together a static files pipeline for Django with whitenoise, how is that not included by default?

Additionally the issues around the user model are bizarre, near the very end of the docs they tell you to override the user model to fix it. Wat.

Lastly Django templates felt super limiting, Livewire/Laravel and Hotwire/Rails gives you so much out of the box.

I ended up choosing Rails to start building side web apps, their move to SQLite-first and the whole “Solid” suite of tools is rad. Specifically Solid Queue is awesome! I noped out of Django when I saw how intense the docs for setting up celery were.

Hoping this spurs some activity in the Django-sphere, I would love if Django felt more complete like Rails!

replies(3): >>43518246 #>>43518259 #>>43518325 #
2. Chris2048 ◴[] No.43518246[source]
Django may be popular, but it isn't necessarily the best.

A lot is built-in, but there is less modularity compared to say flask.

The ORM is generally inferior to SQLAlchemy, and things like Generic FKs are Django-specific (middleware) that gives you a structural dependency on a framework-specific feature, as well as DB logic in the app layer. Also, (might have changed since I last used it), it's not patricularly pythonic.

async frameworks (awsgi) are the new hotness, and FastApi is gaining steady traction.

3. Jaxkr ◴[] No.43518259[source]
> a static files pipeline for Django with whitenoise, how is that not included by default?

It is. They have a file server in debug mode and recommend something like nginx for serving files in production (and provide a collectstatic command to make that easy).

People shouldn’t be using a WSGI server to serve static media. Whitenoise shouldn’t exist.

replies(1): >>43523021 #
4. leetrout ◴[] No.43518325[source]
I am continually impressed with Laravel. I have been using Django since 2008 and if I were starting a simple CRUD app I would consider Laravel before Django if I didn’t need anything Python specific. And with sqlc I would probably pick Go over both if I was forced to have a SPA pattern.
5. tinodb ◴[] No.43523021[source]
Plenty of websites can live with the reduced complexity of having their static files served directly by python. Hence it exists, and is useful.
replies(1): >>43530938 #
6. Jaxkr ◴[] No.43530938{3}[source]
I came back to this thread after realizing I whitenoise would solve my current problem...

I'm working on a small internal tool using Django. When I turned debug off, my files stopped serving. And for this small deployment, I really don't want to have to require a separate nginx server. I get it now.