<metaname="description" content="Web frameworks are code libraries that help developers solve common web application challenges. Learn more on Full Stack Python.">
<p>In short, whether or not you need to use a web framework to build a web
application depends on your experience and what you're trying to accomplish.
Using a web framework to build a web application certainly isn't required,
but it'll make most developers' lives easier in many cases.</p>
<h2>Web framework resources</h2>
<ul>
<li>
<p>"<ahref="http://www.jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/">What is a web framework?</a>"
is an in-depth explanation of what web frameworks are and their relation
to web servers.</p>
</li>
<li>
<p>Check out the answer to the
"<ahref="http://stackoverflow.com/questions/4507506/what-is-a-web-framework-how-does-it-compare-with-lamp">What is a web framework and how does it compare to LAMP?</a>"
question on Stack Overflow.</p>
</li>
<li>
<p><ahref="http://youtu.be/W6KCPXl6Zuc">Frameworks</a> is a really well done short video
that explains how to choose between web frameworks. The author has some
particular opinions about what should be in a framework. For the most part
I agree although I've found sessions and database ORMs to be a helpful
part of a framework when done well.</p>
</li>
<li>
<p><ahref="https://www.airpair.com/python/posts/django-flask-pyramid">Django vs Flask vs Pyramid: Choosing a Python Web Framework</a>
contains background information and code comparisons for similar
web applications built in these three big Python frameworks.</p>
</li>
<li>
<p>This <ahref="http://www.konstruktor.ee/blog/python-web-framework-roundup/">Python web framework roundup</a>
covers Django, Flask and Bottle as well as several other lesser known Python
frameworks.</p>
</li>
<li>
<p>This fascinating blog post takes a look at the
<ahref="http://grokcode.com/864/snakefooding-python-code-for-complexity-visualization/">code complexity of several Python web frameworks</a>
by providing visualizations based on their code bases.</p>
</li>
<li>
<p><ahref="http://klen.github.io/py-frameworks-bench/">Python's web frameworks benchmarks</a>
is a test of the responsiveness of a framework with encoding an object to
JSON and returning it as a response as well as retrieving data from the
database and rendering it in a template. There were no conclusive results
but the output is fun to read about nonetheless.</p>
</li>
<li>
<p><ahref="http://www.reddit.com/r/webdev/comments/2les4x/what_frameworks_do_you_use_and_why_are_they/">What web frameworks do you use and why are they awesome?</a>
is a language agnostic Reddit discussion on web frameworks. It's interesting
to see what programmers in other languages like and dislike about their
suite of web frameworks compared to the main Python frameworks.</p>
</li>
<li>
<p>This user-voted question & answer site asked "<ahref="http://www.slant.co/topics/426/~what-are-the-best-general-purpose-python-web-frameworks-usable-in-production-sites">What are the best general purpose Python web frameworks usable in production?</a>".
The votes aren't as important as the list of the many frameworks
that are available to Python developers.</p>
</li>
</ul>
<h2>Web frameworks learning checklist</h2>
<ol>
<li>
<p>Choose a major Python web framework (<ahref="/django.html">Django</a> or
<ahref="/flask.html">Flask</a> are recommended) and stick with it. When you're just
starting it's best to learn one framework first instead of bouncing around
trying to understand every framework. </p>
</li>
<li>
<p>Work through a detailed tutorial found within the resources links on the
framework's page.</p>
</li>
<li>
<p>Study open source examples built with your framework of choice so you can
take parts of those projects and reuse the code in your application.</p>
</li>
<li>
<p>Build the first simple iteration of your web application then go to
the <ahref="/deployment.html">deployment</a> section to make it accessible on the
web.</p>
</li>
</ol>
<h3>Which web framework do you want to learn about?</h3>
<pstyle="font-size: .8em;">If you want to learn Python web development then
I highly recommend
<ahref="https://realpython.com/?utm_source=fsp&utm_medium=promo&utm_campaign=webframeworks" onclick="trackOutboundLink('https://realpython.com/?utm_source=fsp&utm_medium=promo&utm_campaign=webframeworks'); return false;">checking out Real Python</a>'s
courses.
</p>
</div>
</div>
<divclass="panel panel-success">
<divclass="panel-heading">
<h3class="panel-head"><ahref="/table-of-contents.html" style="color: #fff;">Table of Contents</a></h3>
<ahref="/about-author.html" class="list-group-item smaller-item " style='font-family: "Helvetica Neue",sans-serif;'>About the Author</a>
</div>
</div>
<divclass="panel panel-success">
<divclass="panel-body">
<ahref="http://www.deploypython.com/"><imgsrc="theme/img/sponsored/fsp-deployment-guide.png" alt="The Full Stack Python Guide to Deployments" width="100%"></a>
<pstyle="font-size: .8em; margin-top: 10px;">Searching for a complete, step-by-step deployment walkthrough? Learn more about <ahref="http://www.deploypython.com/">The Full Stack Python Guide to Deployments book</a>.