@@ -1103,7 +1103,7 @@ <h2>Why are web frameworks necessary?</h2>
11031103< p > Web frameworks encapsulate what developers have learned over the past twenty
11041104years while programming sites and applications for the web. Frameworks make
11051105it easier to reuse code for common HTTP operations and to structure projects
1106- so developers with knowledge of the framework can more quickly build and
1106+ so other developers with knowledge of the framework can quickly build and
11071107maintain the application.</ p >
11081108< h2 > Common web framework functionality</ h2 >
11091109< p > Frameworks provide functionality in their code or through extensions to
@@ -1114,53 +1114,55 @@ <h2>Common web framework functionality</h2>
11141114< li > HTML, XML, JSON, and other output format templating</ li >
11151115< li > Database manipulation</ li >
11161116< li > Security against Cross-site request forgery (CSRF) and other attacks</ li >
1117+ < li > Session storage and retrieval</ li >
11171118</ ol >
1118- < p > Not all web frameworks include code for all of the above
1119- functionality. Frameworks fall somewhere between simply executing a
1120- single use case and attempting to be everything to every developer with
1121- increased complexity. Some frameworks take the "batteries-included" approach
1122- where everything possible comes bundled with the framework while others
1123- have a minimal code library that plays well with extensions .</ p >
1124- < p > For example, the Django web application framework includes an
1119+ < p > Not all web frameworks include code for all of the above functionality.
1120+ Frameworks fall on the spectrum from executing a single use case to providing
1121+ every known web framework feature to every developer. Some frameworks take
1122+ the "batteries-included" approach where everything possible comes bundled
1123+ with the framework while others have a minimal core package that is amenable
1124+ to extensions provided by other packages .</ p >
1125+ < p > For example, the < a href =" /django.html " > Django web application framework</ a > includes an
11251126Object-Relational Mapping (ORM) layer that abstracts relational database
11261127read, write, query, and delete operations. However, Django's ORM
1127- cannot work without significant modification on non-relational databases such as
1128- < a href ="http://www.mongodb.org/ "> MongoDB</ a > .
1129- Some other web frameworks such as Flask and Pyramid are easier to
1128+ cannot work without significant modification on non-relational databases
1129+ such as < a href ="http://www.mongodb.org/ "> MongoDB</ a > .</ p >
1130+ < p > Some other web frameworks such as < a href ="/flask.html "> Flask</ a > and
1131+ < a href ="/pyramid.html "> Pyramid</ a > are easier to
11301132use with non-relational databases by incorporating external Python libraries.
1131- There is a spectrum between minimal functionality with easy extensibility and
1132- including everything in the framework with tight integration.</ p >
1133+ There is a spectrum between minimal functionality with easy extensibility on
1134+ one end and including everything in the framework with tight integration on
1135+ the other end.</ p >
11331136< div class ="well see-also ">
11341137While you're learning about web frameworks you should also study
11351138< a href ="/deployment.html "> web application deployment</ a > and
11361139< a href ="/application-programming-interfaces.html "> web APIs</ a > .
11371140</ div >
11381141
11391142< h2 > Do I have to use a web framework?</ h2 >
1140- < p > Whether or not you have to use a web framework depends on your experience
1141- with web development and what you're trying to accomplish. If you are
1142- a beginner programmer and just want to work on a web application as a
1143+ < p > Whether or not you use a web framework in your project depends on your
1144+ experience with web development and what you're trying to accomplish. If you
1145+ are a beginner programmer and just want to work on a web application as a
11431146learning project then a framework can help you understand the concepts listed
11441147above, such as URL routing, data manipulation and authentication that are
11451148common to the majority of web applications.</ p >
11461149< p > On the other hand if you're an experienced programmer with significant
11471150web development experience you may feel like the existing frameworks do not
1148- match your project's requirements. In that case, you can either mix and match
1151+ match your project's requirements. In that case, you can mix and match
11491152open source libraries such as < a href ="http://werkzeug.pocoo.org/ "> Werkzeug</ a > for
11501153WSGI plumbing with your own code to create your own framework. There's
1151- certainly a lot of room for new frameworks to satisfy the needs of Python
1152- web developers that are unmet by < a href ="/django.html "> Django</ a > , < a href =" /flask.html " > Flask </ a > ,
1153- < a href ="/pyramid.html "> Pyramid</ a > , < a href ="/bottle.html "> Bottle</ a > and
1154+ still plenty of room in the Python ecosystem for new frameworks to satisfy
1155+ the needs of web developers that are unmet by < a href ="/django.html "> Django</ a > ,
1156+ < a href ="/flask.html " > Flask </ a > , < a href =" / pyramid.html "> Pyramid</ a > , < a href ="/bottle.html "> Bottle</ a > and
11541157< a href ="/other-web-frameworks.html "> many others</ a > .</ p >
1155- < p > In short, whether or not you need to use a web framework depends on your
1156- experience and what you're trying to accomplish. Using a web framework to
1157- build a web application certainly isn't required, but it'll make most
1158- developers' lives easier in many cases.</ p >
1158+ < p > In short, whether or not you need to use a web framework to build a web
1159+ application depends on your experience and what you're trying to accomplish.
1160+ Using a web framework to build a web application certainly isn't required,
1161+ but it'll make most developers' lives easier in many cases.</ p >
11591162< h2 > Web framework resources</ h2 >
11601163< ul >
11611164< li >
11621165< p > "< a href ="http://www.jeffknupp.com/blog/2014/03/03/what-is-a-web-framework/ "> What is a web framework?</ a > "
1163- by < a href ="https://twitter.com/jeffknupp "> Jeff Knupp</ a >
11641166 is an in-depth explanation of what web frameworks are and their relation
11651167 to web servers.</ p >
11661168</ li >
@@ -6106,6 +6108,7 @@ <h1>Change Log</h1>
61066108< h2 > 2015</ h2 >
61076109< h3 > June</ h3 >
61086110< ul >
6111+ < li > Proofread and tweaked the < a href ="/web-frameworks.html "> web frameworks</ a > page.</ li >
61096112< li > Added a new section entitled "Do I have to use a web framework?" to the
61106113 < a href ="/web-frameworks.html "> web frameworks</ a > page.</ li >
61116114< li > Reviewed and updated the < a href ="/introduction.html "> introduction</ a > with slight
0 commit comments