
Ask HN: What is python beginner's web development full stack? - programming
I am learning python for web development.
======
joeclark77
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.

------
meagher
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)!

~~~
peller
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."

~~~
programming
Thanks. I am noob and never used any framework. What is batteries in django?

~~~
peller
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)

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

