Hacker News new | ask | show | jobs
by philote 1035 days ago
Django is a super heavy framework that includes most anything you'd ever want. There's a ton to learn. Have you tried lighter-weight ones like Flask? I much prefer a lightweight web framework with an easy-to-use ORM/ODM.

Also, even though you don't use frameworks, I assume you use various libraries to handle web requests and such, right?

1 comments

How is Django more heavy than Flask?

When I think about heavy, I think about how hard it would be to replace the framework with my own code in the future. So I don't like magic.

One thing that keeps me from investigating Flask further is that Django seems to be way more popular:

https://trends.google.com/trends/explore?date=all&q=django%2...

So it will probably stay around longer.

Me and other devs maintain this repo which shows how to get from a fresh Debian install to a running web app via different frameworks:

https://github.com/no-gravity/web_app_from_scratch

As you can see, it also has a Flask version.

Contributions are welcome!

As for libraries: PHP has great http and html support build in already. Python is a bit tricky in this regard. That's why I would give Django another try for new web projects. But I also had success just rolling my own http/html code in Python.

>How is Django more heavy than Flask?

Because it is, by far, much larger project? Django has 551k LoC in 31933 commits, Flask has 27k LoC in 5156 commits. Django philosophy is "be opinioated, and bundle everything necessary for developers". Flask philosophy is "do just one thing and just be a good HTTP server, let users pick a solution to all the other problems". Django is a full-blown framework, whereas flask is almost a library. Both approaches are OK, but from your previous message (GP) you prefer lightweight and magic-less frameworks (and Django relies on some conventions to do its magic).

>One thing that keeps me from investigating Flask further is that Django seems to be way more popular:

Both Django and Flask are way more popular that what you're doing (writing everyting yourself. By the way does it mean you write your own HTTP server too?), so I don't know why that stops you. Flask is not going anywhere.

>Me and other devs maintain this repo which shows how to get from a fresh Debian install to a running web app via different frameworks:

Interesting project, thanks for sharing! But that's a bit random - what was your intention when linking it? Also I can't help but notice that the flask example there has three third-party dependencies other than flask (flask-sqlalchemy, flask-login and wtforms). Since you like rolling your own solutions, maybe you would prefer Flask without such libraries? (I personally don't use flask-login and wtforms, and only sometimes use flask-sqlalchemy - I usually use standard sqlalchemy, my custom ORM, or just write SQL directly for simpler projects).

I don't mind so much about the LOC of a framework. If there is stuff in there that I don't use and that does not get in the way of me doing things, thats not that much of a problem.

As for Flask not going anywhere - well, all projects go down the drain at some point. Just 10 years ago, the Zend framework was more popular than Django and Flask combined:

https://trends.google.com/trends/explore?date=all&q=django%2...

Good point about the dependencies of the flask version. I did not write it.

If you like to write a pull request which gets rid of the flask-sqlalchemy and replaces it with pure SQL, I would love to see that.