1+ <!doctype html>
2+ <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
3+ <!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
4+ <!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
5+ <!--[if gt IE 8]><!-->
6+ < html class ="no-js " lang ="en "> <!--<![endif]-->
7+
8+ < head >
9+ < meta charset ="utf-8 ">
10+ < meta name ="language " content ="English " />
11+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge,chrome=1 ">
12+
13+ < title > Full Stack Python</ title >
14+ < meta name ="description " content ="Full stack Python shows how an entire Python web application is built, from the server to the front end JavaScript. ">
15+ < meta name ="author " content ="Matt Makai ">
16+ < meta name ="viewport " content ="width=device-width,initial-scale=1 ">
17+ < link rel ="stylesheet " href ="/css/c.css " />
18+ < link rel ="stylesheet " href ="/css/bootstrap-responsive.min.css " />
19+ < script src ="/js/modernizr-2.0.6.min.js "> </ script >
20+ < script type ="text/javascript ">
21+
22+ var _gaq = _gaq || [ ] ;
23+ _gaq . push ( [ '_setAccount' , 'UA-19910497-7' ] ) ;
24+ _gaq . push ( [ '_trackPageview' ] ) ;
25+
26+ ( function ( ) {
27+ var ga = document . createElement ( 'script' ) ; ga . type = 'text/javascript' ; ga . async = true ;
28+ ga . src = ( 'https:' == document . location . protocol ? 'https://ssl' : 'http://www' ) + '.google-analytics.com/ga.js' ;
29+ var s = document . getElementsByTagName ( 'script' ) [ 0 ] ; s . parentNode . insertBefore ( ga , s ) ;
30+ } ) ( ) ;
31+
32+ </ script >
33+ </ head >
34+
35+ < body >
36+ < div class ="container ">
37+ < div class ="row ">
38+ < div class ="span12 ">
39+ < div class ="logo-header-section ">
40+ < a href ="/ "> < img src ="../img/full-stack-python-logo-bw.png " height ="42 " width ="42 " class ="logo-image " /> </ a >
41+ < span class ="logo-title "> < a href ="/ "> Full Stack Python</ a > </ span >
42+ </ div >
43+ </ div >
44+ </ div >
45+ < h1 > Web Framework</ h1 >
46+
47+
48+ < p > A web application framework is a collection of libraries that
49+ provide functionality to accomplish common operations for the web. These
50+ common operations include:</ p >
51+ < ol class ="arabic simple ">
52+ < li > URL routing</ li >
53+ < li > HTML, XML, JSON, and other output templating</ li >
54+ < li > Database manipulation</ li >
55+ < li > Cross-site request forgery (CSRF) and Cross-site scripting (XSS) protection</ li >
56+ </ ol >
57+ < p > Not all web frameworks include functionality for all of the above
58+ functionality. Frameworks must balance between "being all things to all
59+ people but very complicated" or doing only certain things well without
60+ prescription for how to do other functions.</ p >
61+ < p > For example, the Django web application framework includes an
62+ Object-Relational Mapping (ORM) layer that abstracts relational database
63+ read, write, query, and delete operations. However, the ORM layer in Django
64+ does not work (without modification) on non-relational databases such
65+ < a class ="reference external " href ="http://www.mongodb.org/ "> MongoDB</ a > and < a class ="reference external " href ="http://docs.basho.com/ "> Riak</ a > .
66+ Other web frameworks such as Flask and Pyramid are generally easier to
67+ use with non-relational databases by incorporating external Python libraries.</ p >
68+
69+ < hr />
70+ < div class ="footer pull-right ">
71+ < a href ="http://www.mattmakai.com/ " class ="underline "> Matt Makai</ a > 2013
72+ </ div >
73+ </ div >
74+
75+ < script src ="http://code.jquery.com/jquery-latest.js "> </ script >
76+ < script src ="/js/bootstrap.min.js "> </ script >
77+ </ body >
78+ </ html >
0 commit comments