Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Full Stack Python (fullstackpython.com)
327 points by makaimc on July 3, 2014 | hide | past | favorite | 57 comments

I still think it's funny that "full stack" means web servers and web sites.

It used to begin with assembly...

When you consider the OS and all it's bits, the language runtime and libraries, the database server itself, the browser, we're talking tens of millions - literally - of lines of C and C++. Yet guys who plumb together these pre-built components writing a few hundred lines of high level code at most, think it's the "full stack" they're doing. The same guys who last year, were "rockstar ninjas".

I'm a programmer. It's and old and boring title. But it's honest work with no pretensions, and I mean to go on being one for a long time. And I think anyone who interviewed with me who glibly claimed to be "full stack" would have an interesting time...

It makes me shake my head when I read it.

"I'm not a web monkey, I'm a frontend and backend monkey. Please respect me!"

Is there anything in technology you consider not monkey work?

Literally flipping bits using magnets. Anything else is just monkey work, ya know?

I would've loved to have had this resource when I was starting out and so desperately wanted to move to Python from PHP, but had little idea how.

Also, there's so little mentioned of Pyramid, which in my opinion is the most elegant Python framework there is.

You just prompted me to have a quick read through the Pyramid docs. It looks really nice.

I use Flask as a general rule (though I try to have as little web app specific code as possible with whatever I do). I've worked with django in the past and it's just not for me. Pyramid immediately feels like it strikes a nice balance between the two extremes.

thanks, it's great to hear! I created the site because while I was learning Python these were the resources I would've loved to have learned from.

Regarding Pyramid, I completely agree. It's a great framework and definitely one I need to adda page for it as soon as I get my hands dirty with a project so I can confidently write about the differences compared to Django/Flask/Bottle.

Maybe you could also add a little of information about why one would choose on framework over the other.

I'm learning Python as part of a data science class and not for building web apps.

This article mentions a-ha moments in relation to Python conditionals. What is so special about Python conditionals? They seem pretty ordinary to me.

Imagine that you're learning your first programming language. You don't read Hacker News, and you can't imagine why having curly braces on a keyboard is more useful than a snowman character. Then, getting a working conditional statement might be a revelation.

I still remember the first program I ever wrote. It was about 15 years ago, and all it did was convert a Celsius temperature to Fahrenheit in C. It was thrilling, and I don't think it even included a conditional!

If that first language is python you may get quite a long way before you see any reason why having curly braces on a keyboard is more useful than a snowman character :)

Dictionaries rule.

For me, the big aha moment with Python specifically was grokking list comprehensions. That was a great day.

Also related, the whole generator/iterator pattern, and how by designing your logic into the right kind of objects, you can create extremely elegant interfaces.

could you point out some resources for the same?

True. The moment you realize you rarely ever need a classical for cycle -- for (i=0;i<100;i++) -- is truly a Aha moment.

I think understanding conditionals lies somewhere between "well how do I use this stuff?" to "Eureka!"

Great idea. Will sure read more on your site later on, but one thing that struck me is "Pyramid applications are built using a model-view-controller architecture." There is a note in pyramids design defenses which says they do not consider pyramid to be a mvc: http://docs.pylonsproject.org/projects/pyramid/en/1.3-branch...

thanks, I'll make the change based on this link. I'm coming primarily from a Django & Flask background so my description of Pyramid isn't from a position of knowledge. I'll have to write a Pyramid project to get some experience with the framework.

Great content structure! I will definitely recommend this site for beginners.

I will not, beginners who want to build a web app should start with JS. Until Python is executed client-side as quickly as JS, "fullstack python" is a lie.

I think, in this context, "beginners" refers to new Python programmers who want to use Python to build a web app.

After all, the site's intro clearly states, "You're knee deep in learning the Python programming language...Now you want to take your initial Python knowledge and make something real. A real web application that's available on the web"

I started with Flask because I knew some Python. I just moved to node.js / Meteor. I wish I had started with the latter. I wish someone had told me "Python is nice, I understand that you're enjoying it right now, but learn these JS web frameworks." Anything else is a real disservice to beginners.

Said no one ever.

This is just plain wrong to force someone with your new hype and vague idea of how a web application should be developed using only your new hipster framework of choice and nothing else.

There are tons of way you can write a web application, that's why open source is cool, chose the one that pleases you and have fun with it, but stop trying to prevent others using anything else but what you judge to be the best.

I'm the complete opposite you are entitled to your own opinion but I started with node.js / Meteor, I moved to Flask, and learned Python, and I've never looked back.

I have strong opinion (you might disagree with me) that Javascript should stay in the browser, like it was designed for, and inherited to browsers to this very day.

Javascript is not a beginner-friendly language, though lots of beginners manage to create things with it. It has quite a few rough edges and teaching Javascript can be rather annoying.

When a single PC circa 2014 is more powerful than the entire world's combined computing power circa 1990, and a smartphone is as powerful as an XBox, it's probably suboptimal to worry about execution performance. Generally, it's best to wait until a profiler indicates there's a performance problem before changing your coding habits.

Is my phone battery an acceptable profiler?

It doesn't warn me about performance issues, but it lasts less when I visit heavy websites.

Is it 'full stack' if the frontend is written in JavaScript?

as a web developer you must know have to deal with either javascript or coffee script. Full stack means you can both do frontend, backend, and also deploy. Not that you're expert in three but you're capable of getting the job done.

A bit OT, but is it really practical or safe to know CoffeeScript without being familiar with JS?

I just didn't want to put coffee script out of the scene. obviously to do frontend you must know the basics: css, html, js. but is well known that now there are some fancy pseudo languages that improve the lack of the basic ones, such as less/stylus/sass for css, and coffee script for javascript.

Interesting content. "Full Stack" means all those server-side bits and the client application portions as well. i.e., "everything". This looks like it addresses only the server-side part of the "stack".

There are CSS & JS portions included, with relevant resources linked within.

Real full-stack wouldn't need JS but merely treat it as a compilation/runtime target.

This. When I read "full stack python" I was expecting something like Meteor behind the link.

Technically you can run it in the browser:


But, not good for mass audience. It'd be nice if someone (google) took it upon themselves to implement another lang in the browser.

They have, it's called Dart.

Love the content! It's lame to say, but the first sentence under the Web Framework section has a subject-verb agreement issue. Believe it should be "makes," not "make."

not lame at all! definitely a mistake on my part and should be fixed now. thank you!

I think recommending Python 3 would be good in this tutorial. Since the people that read this are probably starting a new project and both recommended frameworks support it.

Great timing as I was recently looking for a resource like this. I've been leaning towards Flask (vs. Django) so I'll definitely check this out.

A bit of a shameless plug, but you might also like this web starter project I put together:


It covers how to get your dev environment setup, how to checkout the repository and how to build a local web app using Flask.

No information yet on deploying, but I'm happy to take pull requests!

I like this! It's a very comprehensive guide complete with a section on deployment, and not to mention a rich collection of links. Nice job!

This is a great resource and just the right timing since I'm planning on building a website on Google App Engine using Python with Flask.

Isn't webapp2 preferred for python webapp dev in GAE? I'm also starting to build a python based webapp in GAE and confused whether I should start with Flask?Django or Webapp2 itself.

Google now makes it very easy to start with any of the 3 frameworks: Flask, Django or Bottle.


Great timing for me too! I started reading LPTHW, so I can learn django and take on a site I want. I just hate wordpress with passion. I have a really hard time digging and rearranging someone else's work. I hope that being able to manually piece the code together and write my own where necessary will help me out a great deal. This site looks a lot better, compared to a single book, since it teaches not only small bits, but how to put a whole project together.

As I mentioned, I'm 30 pages into LPTHW, but I think I will be switching immediately to Real Python, since it looks a lot more practical for my needs.

Thanks again to the people who built that site, to the person who submitted it on HN and to all the people who voted on it, so it gets to first page! You all rock!

Well I thought this is a project where you write django with python generated CSS and HTML, ZODB for db and some other kind of pure python mockup of redis/memcached, and using Tornado to replace Nginx. Now that's compelete-stack python

you run a few tornado instances behind nginx.

I guess it may be out of the scope for that book, but i was expecting a mention of saltstack on the deployment part. Since there wasn't any mention of any provisionning tools ( or i didn't see where), i suppose it's on purpose.

Awesome. Kind of an interactive book. I can just read those what I need easily.

I think the virtualized servers was oversimplified a bit. In reality, 1 virtual core is generally less than 1 physical core. Virtual cores aren't on a 1 to 1 basic with physical cores.

Lately I've been writing some small scripts in Python to automatize some work and learn the language too, so this site is just what I needed. Great stuff.

This is really great I'm finishing up my course on codecademy and will look to this for my next step :)

This is such a useful guide for me. Especially as someone from the LAMP stack who played with javascript on the server side that left a bad taste in the mouth, I've finally turned to python (flask, uwsgi, nginx). I wish I had known about this site earlier, it has valuable information.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact