@@ -362,17 +362,17 @@ <h1>Web Framework</h1>
362362common operations include:</ p >
363363< ol class ="arabic simple ">
364364< li > URL routing</ li >
365- < li > HTML, XML, JSON, and other output templating</ li >
365+ < li > HTML, XML, JSON, and other output format templating</ li >
366366< li > Database manipulation</ li >
367- < li > Cross-site request forgery (CSRF) and Cross-site scripting (XSS) protection </ li >
367+ < li > Security against Cross-site request forgery (CSRF) and other attacks </ li >
368368</ ol >
369369< p > Not all web frameworks include functionality for all of the above
370- functionality. Frameworks must balance between "being all things to all
371- people but very complicated" or doing only certain things well without
372- prescription for how to do other functions .</ p >
370+ functionality. Frameworks fall somewhere between simply executing a
371+ single use case and attempting to be everything to every developer with
372+ increased complexity .</ p >
373373< p > For example, the Django web application framework includes an
374374Object-Relational Mapping (ORM) layer that abstracts relational database
375- read, write, query, and delete operations. However, the ORM layer in Django
375+ read, write, query, and delete operations. However, Django's ORM
376376does not work (without modification) on non-relational databases such
377377< a class ="reference external " href ="http://www.mongodb.org/ "> MongoDB</ a > and < a class ="reference external " href ="http://docs.basho.com/ "> Riak</ a > .
378378Other web frameworks such as Flask and Pyramid are generally easier to
@@ -391,6 +391,16 @@ <h2>Web Framework Monitoring</h2>
391391< li > Warning</ li >
392392< li > Error</ li >
393393</ ol >
394+ < p > Logging errors that occur while a web framework is running is crucial to
395+ understanding how your application is performing.
396+ < a class ="reference external " href ="http://raven.readthedocs.org/en/latest/ "> Raven</ a > is a Python client for the
397+ < a class ="reference external " href ="https://github.com/getsentry/sentry "> Sentry</ a > exception logging and
398+ aggregation application. Raven provides the way to send exceptions to
399+ Sentry, which should be deployed on a separate server from your production
400+ infrastructure. Raven can also be used by Python scripts to send other
401+ log data to Sentry for aggregation. Sentry provides a clean web application
402+ interface for viewing the exceptions. Sentry can also be configured with a
403+ mail plugin to send emails when exceptions occur.</ p >
394404</ div >
395405< div class ="section " id ="web-framework-resources ">
396406< h2 > Web Framework Resources</ h2 >
0 commit comments