Hacker News new | ask | show | jobs
Ask HN: What is python beginner's web development full stack?
9 points by programming 3490 days ago
I am learning python for web development.
3 comments

I would use Flask, not Django. I recently had to help a beginner with some Django code and found it inelegant and unintuitive. Flask, by contrast, is simple and straightforward. The setup is four lines of code, and each URL is a Python function, so it can do anything Python can do.

For your "stack", I'd recommend Heroku for the backend, and PostgreSQL for the database because it's supported well by Heroku. The name of the game is that you shouldn't have to spend any time setting up servers, etc. Just test and deploy. There's a good Flask tutorial by Miguel Grinberg in book form and online which uses this stack.

Django or Flask, Postgres, and plain old HTML/CSS/JS.

Django's learning curve is a bit steeper, but there are more resources out there. Stay persistent (and use Python 3)!

I'm a big fan of Flask, but if OP has never used a web framework before, personally I'd recommend starting with Django, because there are more resources out there. Flask is great if you know what you're doing and have the experience to architect a larger project, but Django is (more) batteries included and more opinionated about how things should fit together. As a beginner, it makes a lot of the tough decisions for you, and starting out that's a good thing. In Flask, it's easier to get to "Hello World." In Django, it's easier to get to "Working Web Application."
Thanks. I am noob and never used any framework. What is batteries in django?
Ah it's just an expression, basically meaning "everything you need included." In the context of web frameworks, "batteries" are typically things like:

- An HTML templating language for your views

- An Object Relationship Mapper ("ORM" - makes talking to databases consistent, and automatically populates your models with data from the database)

- User Authentication/Session Management

- An Admin GUI for managing your database models ("CRUD" Actions - Create, Read, Update, Delete)

+1 for Flask. Start low level and then work your way up to Django. Check out https://realpython.com!