forked from mattmakai/fullstackpython.com
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
167 lines (166 loc) · 12.1 KB
/
index.html
File metadata and controls
167 lines (166 loc) · 12.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Matt Makai">
<meta name="description" content="Full Stack Python explains programming concepts in plain language and provides links to the best tutorials for those topics.">
<title>Full Stack Python</title>
<style>
*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;font-size:18px;-webkit-tap-highlight-color:rgba(0,0,0,0),color:#222;background:#fefefe}
body{margin:0;font:18px Georgia,serif;line-height:1.4;color:#222;padding:0 0}
img{border:0;vertical-align:middle}
hr{height:0;box-sizing:content-box;margin:21px 0 21px 0;border:0;border-top:1px solid #eee}
h1,h2,h3,h4,h5,h6{font-family:"Helvetica Neue",sans-serif;font-weight:500;line-height:1.1;color:#000}
h1,h2,h3{margin:32px 0 6px}
h5{margin:6px 0 14px 0}
h1{font-size:40px}
h3{font-size:22px}
h5{font-size:15px}
p{margin:0 0 12px}
.container{padding:0 15px 0 15px;margin-right:auto;margin-left:auto}
.container:before,.container:after{display:table;content:" "}
.container:after{clear:both}
.row:before,.row:after{display:table;content:" "}
.row:after{clear:both}
.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{position:relative;min-height:1px;padding:0 15px 0 15px}
.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:14px;color:#777;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}
.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}
.btn{display:inline-block;padding:8px 12px;margin-bottom:0;font-size:15px;font-weight:normal;line-height:1.4;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;color:#fff;background-color:#22b24c;border-color:#22b24c}
.btn:active,.btn.active{background-image:none;outline:0;box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}
.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05);border-color:#22b24c}
.panel-body{padding:15px}
.panel-body:before,.panel-body:after{display:table;content:" "}
.panel-body:after{clear:both}
.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;color:#468847;background-color:#22b24c;border-color:#22b24c}
.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}
a{background:transparent;text-decoration:none;border-bottom:1px dotted;color:#444}
a:hover{text-decoration:none;color:#000}
.logo-title a,.logo-title a:hover{font:72px "Helvetica Neue",sans-serif;font-weight:normal;letter-spacing:.03em;vertical-align:middle;margin-left:5px;color:#000;text-decoration:none;border-bottom:none;line-height:.9em}
.logo-title a:hover{color:#808080}
.logo-image{vertical-align:middle;border:none;height:52px;width:52px;padding:1px}
.logo-header-section{margin:20px 0 15px 0}
#sidebar{margin-top:30px}
.btn-full{width:100%;box-shadow:1px 2px 1px #222;padding-bottom:4px}
p.under-btn{text-align:left;margin-top:20px}
h3.panel-head{margin:5px 0 0 0;font-size:26px;color:#fff}
@media (min-width:750px){.container{width:730px}}@media (min-width:768px){.container{width:750px}}@media (min-width:940px){.container{width:920px}}@media (min-width:1140px){.container{width:1120px}}.row{margin-right:-15px;margin-left:-15px}
@media (min-width:768px){.col-md-3,.col-md-4,.col-md-8,.col-md-12{float:left} .col-md-12{width:100%} .col-md-8{width:66.66666666666666%} .col-md-4{width:33.33333333333333%} .col-md-3{width:25%} .col-md-offset-1{margin-left:8.333333333333332%} .select-next{min-height:300px}}
@media (max-width:1200px){h3.panel-head{font-size:22px}}@media (max-width:720px){.logo-header-section{margin:20px 40px 0 0}}
p.banner{font-weight:500;line-height:1.1;color:#fff;font-size:22px;margin:14px 0 18px 0}
@media (max-width:767px){.logo-header-section{padding:8px 0 10px; margin:0} #forkme {display:none} .logo-title a,.logo-title a:hover{font-size:34px} h1{font-size:28px} .logo-image{height:26px;width:26px}}
@media (min-width:1140px){.select-next{min-height:220px}}
.sans-font{font-family:"Helvetica Neue",sans-serif}
</style>
<link rel="shortcut icon" href="/img/fsp-fav.png">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="logo-header-section">
<a href="/" style="text-decoration: none; border: none;"><img src="/img/logo-sm.png" class="logo-image" alt="Full Stack Python logo"></a>
<span class="logo-title"><a href="https://www.fullstackpython.com/">Full Stack Python</a></span>
</div>
<div class="sans-font">
<a href="/table-of-contents.html">All topics</a>
<span style="margin:0 12px 0 12px">|</span>
<a href="/blog.html">Blog</a>
<span style="margin:0 12px 0 12px">|</span>
<a href="/email.html">Newsletter</a>
<span style="margin:0 12px 0 12px">|</span>
<a href="https://twitter.com/fullstackpython">@fullstackpython</a>
<span style="margin:0 12px 0 12px">|</span>
<a href="https://www.facebook.com/fullstackpython">Facebook</a>
<span style="margin:0 12px 0 12px">|</span>
<a href="https://github.com/mattmakai/fullstackpython.com">Source</a>
</div> </div>
</div><a href="https://github.com/mattmakai/fullstackpython.com" id="forkme"><img style="position: absolute; top: 0; right: 0; border: 0;" src="/img/fork.png" alt="Fork me on GitHub"></a>
<div class="row">
<div class="col-md-8">
<h1>Introduction</h1>
<p>You're knee deep in learning the <a href="http://www.python.org/">Python</a>
programming language. The syntax is starting to make sense. The first
few "<em>ahh-ha</em>!" moments hit you as you learning conditional
statements, <code>for</code> loops and classes while playing around with the open source
libraries that make Python such an amazing language.</p>
<p>Now you want to take your initial Python knowledge and make something real,
like an application that's available on the web that you can show off or
sell as a service to other people. That's where Full Stack Python comes in.
You've come to the right place to learn everything you need to
<a href="/web-development.html">create</a>, <a href="/deployment.html">deploy</a>
and <a href="/devops.html">operate</a> production Python web applications.</p>
<p>This guide branches out on topic because your learning
requirements depend on what you're working on. Select one
of the buttons below or check out the full
<a href="/table-of-contents.html">table of contents</a>.
</p>
<h3>What do you need to learn to create your application?</h3>
<div class="row">
<div class="col-md-4">
<div class="well select-next">
<a href="/web-frameworks.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M553 1399l-50 50q-10 10-23 10t-23-10l-466-466q-10-10-10-23t10-23l466-466q10-10 23-10t23 10l50 50q10 10 10 23t-10 23l-393 393 393 393q10 10 10 23t-10 23zm591-1067l-373 1291q-4 13-15.5 19.5t-23.5 2.5l-62-17q-13-4-19.5-15.5t-2.5-24.5l373-1291q4-13 15.5-19.5t23.5-2.5l62 17q13 4 19.5 15.5t2.5 24.5zm657 651l-466 466q-10 10-23 10t-23-10l-50-50q-10-10-10-23t10-23l393-393-393-393q-10-10-10-23t10-23l50-50q10-10 23-10t23 10l466 466q10 10 10 23t-10 23z" fill="#fff"/></svg></a>
<p class="under-btn">I want to learn how to code a Python web application using a framework.</p> </div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/deployment.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1792 640q0 26-19 45l-512 512q-19 19-45 19t-45-19-19-45v-256h-224q-98 0-175.5 6t-154 21.5-133 42.5-105.5 69.5-80 101-48.5 138.5-17.5 181q0 55 5 123 0 6 2.5 23.5t2.5 26.5q0 15-8.5 25t-23.5 10q-16 0-28-17-7-9-13-22t-13.5-30-10.5-24q-127-285-127-451 0-199 53-333 162-403 875-403h224v-256q0-26 19-45t45-19 45 19l512 512q19 19 19 45z" fill="#fff"/></svg></a>
<p class="under-btn">I've built a Python web app, now how do I deploy it?</p> </div>
</div>
<div class="col-md-4">
<div class="well select-next">
<a href="/best-python-resources.html" class="btn btn-success btn-full"><svg width="28" height="30" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1703 478q40 57 18 129l-275 906q-19 64-76.5 107.5t-122.5 43.5h-923q-77 0-148.5-53.5t-99.5-131.5q-24-67-2-127 0-4 3-27t4-37q1-8-3-21.5t-3-19.5q2-11 8-21t16.5-23.5 16.5-23.5q23-38 45-91.5t30-91.5q3-10 .5-30t-.5-28q3-11 17-28t17-23q21-36 42-92t25-90q1-9-2.5-32t.5-28q4-13 22-30.5t22-22.5q19-26 42.5-84.5t27.5-96.5q1-8-3-25.5t-2-26.5q2-8 9-18t18-23 17-21q8-12 16.5-30.5t15-35 16-36 19.5-32 26.5-23.5 36-11.5 47.5 5.5l-1 3q38-9 51-9h761q74 0 114 56t18 130l-274 906q-36 119-71.5 153.5t-128.5 34.5h-869q-27 0-38 15-11 16-1 43 24 70 144 70h923q29 0 56-15.5t35-41.5l300-987q7-22 5-57 38 15 59 43zm-1064 2q-4 13 2 22.5t20 9.5h608q13 0 25.5-9.5t16.5-22.5l21-64q4-13-2-22.5t-20-9.5h-608q-13 0-25.5 9.5t-16.5 22.5zm-83 256q-4 13 2 22.5t20 9.5h608q13 0 25.5-9.5t16.5-22.5l21-64q4-13-2-22.5t-20-9.5h-608q-13 0-25.5 9.5t-16.5 22.5z" fill="#fff"/></svg></a>
<p class="under-btn">Show me a list of the best Python learning resources.</p> </div>
</div>
</div> </div>
<div class="col-md-offset-1 col-md-3" id="sidebar">
<div class="panel">
<div class="panel-heading"><h3 class="panel-head">Full Stack Python</h3></div>
<div class="panel-body">
<a href="/">Full Stack Python</a> is an open book that explains
concepts in plain language and provides the most helpful resources
on those topics.
<hr/>
The <a href="/table-of-contents.html">table of contents</a> lists
all Python topics.
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h3 class="panel-head">Email Updates</h3>
</div>
<div class="panel-body">
<div id="mc_embed_signup">
<form action="//mattmakai.us2.list-manage.com/subscribe/post?u=b7e774f0c4f05dcebbfee183d&id=b22335388d" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<h5>Sign up to get a monthly email with Python tutorials and major updates to this site.</h5>
<input type="email" value="" name="EMAIL" class="email form-control" id="mce-EMAIL" placeholder="email address" required>
<div style="position: absolute; left: -5000px;"><input type="text" name="b_b7e774f0c4f05dcebbfee183d_b22335388d" tabindex="-1" value=""></div>
<input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="btn btn-success" style="font-family: 'Helvetica Neue'; margin-top: 5px;">
</div>
</form>
</div>
</div>
</div></div></div>
<hr/>
</div>
<div class="container">
<div class="sans-font" style="padding:8px 0 30px 0;float:right">
<a href="https://github.com/mattmakai" class="underline">Matt Makai</a>
<a href="/change-log.html">2012-2017</a>
</div>
</div><script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-19910497-7', 'auto');
ga('send', 'pageview');
</script><script type='text/javascript'>
var trackOutboundLink = function(url) { ga('send', 'event', 'outbound', 'click', url, {'hitCallback': function () { document.location = url; } }); }
</script>
</body>
</html>