Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2001 commits
Select commit Hold shift + click to select a range
913203d
new python 3 resource
mattmakai Sep 5, 2016
ac16cb8
new gunicorn resource
mattmakai Sep 7, 2016
3cc01ae
fix toc
mattmakai Sep 7, 2016
1b60cbb
fix a couple of typos
mattmakai Sep 7, 2016
aefabb2
fix typo
mattmakai Sep 7, 2016
82f7715
new bots resource
mattmakai Sep 8, 2016
b7b2660
remove broken link
mattmakai Sep 8, 2016
95006c2
fix a couple of broken links
mattmakai Sep 8, 2016
c86a7d6
banner for book update
mattmakai Sep 9, 2016
62bf24f
update changelog
mattmakai Sep 9, 2016
51a02c8
adding new python 2 to 3 resource
mattmakai Sep 10, 2016
f2ec5e4
update changelog with recent mods
mattmakai Sep 10, 2016
380534c
removing unused css
mattmakai Sep 11, 2016
f4a03e1
remove more unnecessary css
mattmakai Sep 11, 2016
d53a5cc
remove more unnecessary css
mattmakai Sep 11, 2016
48382e1
remove unnecessary css
mattmakai Sep 11, 2016
101a651
remove unnecessary css
mattmakai Sep 11, 2016
5220bff
further unnecessary css removal
mattmakai Sep 12, 2016
5c4de10
update changelog
mattmakai Sep 12, 2016
aa24281
fix typo: Tokenfrom->Token from
haiiiiiyun Sep 13, 2016
7430100
Merge pull request #107 from haiiiiiyun/twilio_page_typo_fix
mattmakai Sep 13, 2016
64cf950
remove unnecessary css
mattmakai Sep 13, 2016
ac55741
fix css issue on sidebar
mattmakai Sep 14, 2016
5b0f59a
tighten up css even further
mattmakai Sep 15, 2016
1cffd4b
css optimization
mattmakai Sep 15, 2016
1b0c548
perf tweaks
mattmakai Sep 15, 2016
a7b726b
bunch o css tweaks
mattmakai Sep 16, 2016
cfce599
fix css issue
mattmakai Sep 16, 2016
e4ad632
new twilio resource
mattmakai Sep 17, 2016
178ac44
tweak wording on PaaS page
mattmakai Sep 17, 2016
b8bef55
further css reduction
mattmakai Sep 18, 2016
3cbfd7f
fix a couple broken links on video page
mattmakai Sep 19, 2016
1272b18
update page to fix issue #108
mattmakai Sep 19, 2016
fbf374d
move Source link to base repository
mattmakai Sep 19, 2016
92ab6be
update to OS page for recommended deployments
mattmakai Sep 21, 2016
441b302
tweak top banner spacing
mattmakai Sep 21, 2016
a7de153
fix typo in one of the choices
mattmakai Sep 22, 2016
7a9b803
break out pelican page
mattmakai Sep 27, 2016
20deb58
update changelo
mattmakai Sep 27, 2016
7e22b92
Update changelog
mattmakai Sep 28, 2016
9bff635
add new static website generator resource
mattmakai Sep 28, 2016
e1883f1
small tweaks for cross reference
mattmakai Sep 29, 2016
ec7bb09
add more cross references
mattmakai Sep 30, 2016
7e7de1b
optimize logo
mattmakai Sep 30, 2016
886a05b
introduction tweaks. new devops resource
mattmakai Oct 1, 2016
3769aa6
add python community stub page. remove banner except from blog posts
mattmakai Oct 1, 2016
c76e5e4
update changelog and devops page
mattmakai Oct 1, 2016
d38ca63
add pelican to toc
mattmakai Oct 4, 2016
d75c6f6
fix issue on task queues page
mattmakai Oct 6, 2016
00fc1b4
welp, here goes nothing with the ToC
mattmakai Oct 6, 2016
9f5e763
add forkme just to main page
mattmakai Oct 7, 2016
29f4d19
tweak for mobile devices
mattmakai Oct 7, 2016
bd8fcd1
add toc to sitemap
mattmakai Oct 7, 2016
aca5493
update banner
mattmakai Oct 7, 2016
0afd5bd
update changelog
mattmakai Oct 7, 2016
d7807d8
add new sqlalchemy page
mattmakai Oct 9, 2016
28a09db
add link to source code for sqlalchemy
mattmakai Oct 9, 2016
41da997
remove banner from new sqlalchemy page for now
mattmakai Oct 9, 2016
8d33f86
new orm resource
mattmakai Oct 11, 2016
9eee8fa
fix table of contents coming soon on sqlalchemy
mattmakai Oct 11, 2016
4275b5a
add peewee page. update turbogears logo on other web frameworks page
mattmakai Oct 13, 2016
4f64bbf
tweak peewee page wording
mattmakai Oct 13, 2016
66cfb23
tweak wording on peewee page
mattmakai Oct 13, 2016
e252fa3
new peewee resource
mattmakai Oct 13, 2016
39c6e0f
changing up the orms on toc
mattmakai Oct 14, 2016
e554696
update several banners
mattmakai Oct 14, 2016
76e2314
update banner text
mattmakai Oct 14, 2016
27f3d07
banner fix
mattmakai Oct 14, 2016
a5ab9b6
fix wording on sqlalchemy page
mattmakai Oct 14, 2016
f6cae82
add more description to peewee page
mattmakai Oct 15, 2016
3e84dc8
new peewee resource
mattmakai Oct 15, 2016
233be83
update changelog
mattmakai Oct 15, 2016
64abc23
change banner on sqlalchemy page
mattmakai Oct 15, 2016
baf32c1
new devops resource
mattmakai Oct 16, 2016
e69bc4f
fix css on mobile for choices
mattmakai Oct 16, 2016
2c83c09
huge reorganization of sidebar content to match new ToC
mattmakai Oct 17, 2016
77443d1
add picture to about author page
mattmakai Oct 18, 2016
7d44093
update about page
mattmakai Oct 18, 2016
3d6e4ca
update about author page
mattmakai Oct 18, 2016
ac089de
update pony orm description
mattmakai Oct 19, 2016
c1b0cc1
fix changelog link
mattmakai Oct 21, 2016
03b6bd9
add new orm resource
mattmakai Oct 23, 2016
b06f9d6
sqlalchemy page work
mattmakai Oct 23, 2016
253a61b
update banner on a couple of pages
mattmakai Oct 24, 2016
92cf5ff
fix typo
mattmakai Oct 27, 2016
10e6f15
update slack bot tutorial
mattmakai Oct 27, 2016
bbfa7bf
remove nitrous from cloud dev envs since they are shutting down
mattmakai Oct 31, 2016
f7f122b
add Kuyruk to the projects list
cenkalti Nov 1, 2016
e35256a
Merge pull request #110 from cenkalti/patch-1
mattmakai Nov 1, 2016
64d7b2d
merge and regenerate based on PR #110 and update changelog for November
mattmakai Nov 1, 2016
987b03a
tweak banners on various pages
mattmakai Nov 4, 2016
ba0a2df
new sqlalchemy resource
mattmakai Nov 8, 2016
f4f4f50
add aws logo for future page
mattmakai Nov 10, 2016
4d61ced
update devops page
mattmakai Nov 14, 2016
d2fc1d3
add new bottle resource
mattmakai Nov 14, 2016
476ddf7
add new django+docker post
mattmakai Nov 15, 2016
ef84d5e
fix broken deployment link
mattmakai Nov 18, 2016
af6b329
add twiml
mattmakai Nov 23, 2016
403528f
new blog post on making calls with python without a framework
mattmakai Nov 23, 2016
a4e9f5b
fix link issue on new blog post
mattmakai Nov 23, 2016
81812db
add redirect to new post
mattmakai Nov 23, 2016
7ad9fc3
working on new podcasts page
mattmakai Nov 25, 2016
843fb97
fix two broken internal links
mattmakai Nov 26, 2016
6662fae
work on podcasts page
mattmakai Nov 26, 2016
db74056
tweak footer and sidebar description
mattmakai Nov 27, 2016
278ebf6
change footer to github profile instead of website
mattmakai Nov 27, 2016
f545eaa
fix fork link to github repo
mattmakai Nov 27, 2016
d0ed099
add podcast
mattmakai Nov 29, 2016
05a6157
tweaks based on @raiderrobert PR #111. thank you
mattmakai Nov 29, 2016
34ab384
update jinja page
mattmakai Nov 30, 2016
7861c4c
update changelog
mattmakai Dec 1, 2016
d176c50
clarify changelog
mattmakai Dec 1, 2016
62c46c5
new initial rough page for lektor
mattmakai Dec 1, 2016
5a72ab7
update toc and changelog
mattmakai Dec 1, 2016
00ab4ff
tweak lektor logo
mattmakai Dec 2, 2016
8d801d2
begone, most banners
mattmakai Dec 2, 2016
2bdfc3f
Update 12-nosql.markdown
qgreg Dec 3, 2016
e57673f
Merge pull request #112 from qgreg/brokenlink
mattmakai Dec 3, 2016
e8b2410
regenerate site to incorporate PR #112
mattmakai Dec 3, 2016
a904700
remove old bottle link. add new ones
mattmakai Dec 4, 2016
e979813
working on mkdocs page
mattmakai Dec 5, 2016
c3ca270
add new sections and resources to nginx page
mattmakai Dec 6, 2016
ec5265f
add nginx logo
mattmakai Dec 6, 2016
8b74758
add nginx logo
mattmakai Dec 6, 2016
833e204
update nginx logo on nginx page
mattmakai Dec 6, 2016
3d08c83
update static site generator page and changelog
mattmakai Dec 7, 2016
b66bcf2
fix typo on mkdocs page
mattmakai Dec 7, 2016
38502b7
update mkdocs page
mattmakai Dec 7, 2016
0011a65
add licenses to static site generator pages
mattmakai Dec 7, 2016
a8a7cc4
working on static site generator pages
mattmakai Dec 7, 2016
2f11d9f
new lektor resource
mattmakai Dec 7, 2016
9693230
add new lektor resource
mattmakai Dec 8, 2016
0302fa4
github seems confused.
mattmakai Dec 8, 2016
18901af
add nojekyll file
mattmakai Dec 8, 2016
76bc6ad
include nojekyll
mattmakai Dec 8, 2016
f651a66
new lektor resource
mattmakai Dec 9, 2016
7a5fbd1
add lower banner on some pages
mattmakai Dec 16, 2016
6ebdf09
added resource to nosql article
mjhea0 Dec 19, 2016
494ba3c
Merge pull request #113 from mjhea0/gh-pages
mattmakai Dec 19, 2016
ba71f06
new nosql resources
mattmakai Dec 19, 2016
7f4248d
updating changelog with note about 800k readers
mattmakai Dec 30, 2016
3b000f1
new resource on why python. first commit of 2017
mattmakai Jan 1, 2017
8070b44
update changelog and footer year
mattmakai Jan 1, 2017
3557cd3
fix broken internal link
mattmakai Jan 1, 2017
e22d9cf
new why python resource and fixed a few broken links
mattmakai Jan 3, 2017
1a4762c
fix link rot on integration testing page
mattmakai Jan 3, 2017
26ee304
fix broken link on css page
mattmakai Jan 3, 2017
7478a5a
fix link rot on web servers page
mattmakai Jan 3, 2017
e405d66
fix link rot
mattmakai Jan 3, 2017
e9b6ca0
update changelog after removing link rot on all pages
mattmakai Jan 3, 2017
ba9a4f3
new python 2 or 3 resources
mattmakai Jan 4, 2017
c859821
new static site deployment resources
mattmakai Jan 7, 2017
cd2ccdb
new enterprise python resource
mattmakai Jan 9, 2017
df8a917
update license years for project
mattmakai Jan 9, 2017
44739d4
reduce code font size
mattmakai Jan 10, 2017
69d38a4
update blog page layout
mattmakai Jan 10, 2017
1b1a43c
new django orm resource
mattmakai Jan 10, 2017
d69ddf2
add desktop environments post
mattmakai Jan 12, 2017
bae09f3
new morepath resource
mattmakai Jan 12, 2017
d42489c
fix underline issue in init link
mattmakai Jan 12, 2017
5670ed8
new python 2 or 3 resource
mattmakai Jan 14, 2017
c7d4df0
new static site generator resources
mattmakai Jan 14, 2017
32529eb
working on dev envs page
mattmakai Jan 15, 2017
fedcdae
update changelog
mattmakai Jan 15, 2017
38d4c1e
new git page
mattmakai Jan 15, 2017
384f3c4
update ToC and changelog
mattmakai Jan 15, 2017
1d94fda
more work on git page
mattmakai Jan 16, 2017
b4bb312
add redis page
mattmakai Jan 17, 2017
288a43f
add stub mongodb page
mattmakai Jan 18, 2017
84c95d4
fix a couple of link redirects
mattmakai Jan 18, 2017
803558f
work on mongodb page
mattmakai Jan 18, 2017
7166ca0
add cassandra logo for new page
mattmakai Jan 19, 2017
d917ca9
work on mongodb page
mattmakai Jan 19, 2017
1135035
update future directions
mattmakai Jan 19, 2017
a4ec192
apache cassandra stub page
mattmakai Jan 21, 2017
a5a0def
update changelog and future directions
mattmakai Jan 21, 2017
419f1f1
add fork me banner to ToC
mattmakai Jan 21, 2017
053c9ce
add plumbing for major pages expansion
mattmakai Jan 21, 2017
0f22c27
working on stubbing out more template engine implementation pages
mattmakai Jan 23, 2017
a6302bb
new mako resource
mattmakai Jan 23, 2017
1abef48
major update on template engines page
mattmakai Jan 24, 2017
08083a7
update changelog
mattmakai Jan 24, 2017
6d05ee3
add jenkins page
mattmakai Jan 24, 2017
aefb561
update changelog
mattmakai Jan 24, 2017
fd880c3
new CI resource
mattmakai Jan 25, 2017
178d3e6
reordering pages to add new content
mattmakai Jan 25, 2017
d93e7d1
add mongodb resources
mattmakai Jan 25, 2017
9e11754
update changelog
mattmakai Jan 25, 2017
b5240dd
add celery page
mattmakai Jan 26, 2017
2a4f665
update changelog
mattmakai Jan 26, 2017
8107657
add rq stub page
mattmakai Jan 27, 2017
2bafdad
add rq stub page and update changelog
mattmakai Jan 27, 2017
9b1a602
add markdown stub page
mattmakai Jan 28, 2017
6d99f6d
Update README with link to table of contents
mattmakai Jan 28, 2017
b9e2f99
new celery resources
mattmakai Jan 29, 2017
4077528
update changelog
mattmakai Jan 29, 2017
625cb0d
add link to markdown stub page in ToC
mattmakai Jan 29, 2017
2b6e01e
update monitoring page
mattmakai Jan 30, 2017
f3974b4
add Sanic page
mattmakai Feb 1, 2017
13caec6
new sanic resource and update changelog
mattmakai Feb 1, 2017
a7d69f8
new orm resource
mattmakai Feb 1, 2017
d2cb429
Fixes table-of-contents.html closing tag
mattberjon Feb 2, 2017
3ce1fb2
Merge pull request #117 from mattberjon/gh-pages
mattmakai Feb 2, 2017
36c9c48
regenerate site after PR #117
mattmakai Feb 2, 2017
f742caf
Update 04-flask.markdown
mjhea0 Feb 5, 2017
023a0c1
clean up indentation
mattmakai Feb 5, 2017
db67347
Merge pull request #118 from mjhea0/patch-1
mattmakai Feb 5, 2017
bccf5a1
regenerate site for PR #118
mattmakai Feb 5, 2017
9c935ea
remove djangowos as it looks like the domain was taken over
mattmakai Feb 9, 2017
9ac8dad
fix based on PR #119. thanks @ergo
mattmakai Feb 10, 2017
d584ff0
tweak css
mattmakai Feb 14, 2017
b020c16
experiment with css loading toc
mattmakai Feb 14, 2017
85ac406
add new blog post on ssh keys
mattmakai Feb 15, 2017
42eec25
reduce blog post header image sizes by 42%
mattmakai Feb 15, 2017
cd34932
fix byline styling
mattmakai Feb 15, 2017
6c8bd71
inline css and remove external css file dep
mattmakai Feb 15, 2017
5f66c61
add rq dashboard project
mattmakai Feb 16, 2017
8d857ca
bump perf improvement remove css front page
mattmakai Feb 16, 2017
3a9fb31
remove external css file from all page
mattmakai Feb 18, 2017
192c67e
tweak templates
mattmakai Feb 18, 2017
d083817
fix broken sidebar on email page
mattmakai Feb 19, 2017
21f11a1
clean up old files
mattmakai Feb 19, 2017
6226882
remove external css blog
mattmakai Feb 19, 2017
8328b86
make flask logo size smaller
mattmakai Feb 19, 2017
8c8969e
fix select-next css issues
mattmakai Feb 19, 2017
b6112be
update changelog
mattmakai Feb 19, 2017
fd8e5c7
convert all pages to on-page style element instead of external css
mattmakai Feb 20, 2017
e8bb561
kill css
mattmakai Feb 20, 2017
59efc92
add new blog post on ssh keys mac os sierra
mattmakai Feb 21, 2017
583e56f
bump changelog. fix typo in mac ssh keys post
mattmakai Feb 21, 2017
b92f8e8
add h1 to blog page but keep hidden for now
mattmakai Feb 21, 2017
d5b9dfc
add dropbox slack bot
mattmakai Feb 23, 2017
6437357
new websockets video
mattmakai Feb 23, 2017
af8c6ec
update about author page
mattmakai Feb 24, 2017
0e94ba1
modify about author description
mattmakai Feb 24, 2017
f58c096
new operating systems resource
mattmakai Feb 25, 2017
8988c34
add talk slides. transcript forthcoming
mattmakai Mar 1, 2017
1eed98c
add transcript to part of tech talk
mattmakai Mar 1, 2017
6b69e26
modify about author page
mattmakai Mar 3, 2017
d5f8110
work on blog post based on talk
mattmakai Mar 3, 2017
cca6c28
new git resource
mattmakai Mar 5, 2017
57a37b0
update changelog
mattmakai Mar 5, 2017
6158b25
new hosting resource
mattmakai Mar 5, 2017
f01788b
change a line
toyin30 Mar 8, 2017
917f2c6
Source
toyin30 Mar 8, 2017
87f25fb
morepath.markdown
toyin30 Mar 8, 2017
31f37ca
Merge remote-tracking branch 'refs/remotes/origin/gh-pages' into matt…
toyin30 Mar 8, 2017
d4a3041
Mako-markdown
toyin30 Mar 8, 2017
eabfb86
CSS.Markdown
toyin30 Mar 8, 2017
fb99db8
Comprehensions.markdown
toyin30 Mar 9, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,9 @@ pip-log.txt
.mr.developer.cfg

.DS_Store

# Emacs backups
*~

source/cache/
venv
Empty file added .nojekyll
Empty file.
8 changes: 8 additions & 0 deletions 404.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<html>
<head>
<title>Page not found.</title>
</head>
<body>
Sorry, that page could not be found. <a href="/">Return to main.</a>
</body>
</html>
4 changes: 4 additions & 0 deletions BingSiteAuth.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<users>
<user>F80C45361A64783D8A14BC4FC102300A</user>
</users>
1 change: 1 addition & 0 deletions CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
www.fullstackpython.com
66 changes: 66 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
============
Contributing
============

Contributions are welcome and greatly appreciated!


Fix Typos, Grammar Errors, etc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Create pull requests at
https://github.com/makaimc/fullstackpython.com/pulls.


Submit Feedback
~~~~~~~~~~~~~~~

The best way to send feedback is to file an issue at
https://github.com/makaimc/fullstackpython.com/issues.


Get Started!
------------

If you're not familiar with `Pelican <http://docs.getpelican.com/>`_, check out the blog post on
`Getting Started with Pelican and GitHub Pages <http://www.mattmakai.com/introduction-to-pelican.html>`_.

**Ready to contribute? Here's how to set up Full Stack Python for local development.**

1. Fork the `fullstackpython.com <https://github.com/makaimc/fullstackpython.com>`_ repo on GitHub.

2. Clone your fork locally::

$ git clone [email protected]:your_name_here/fullstackpython.com.git fsp

3. Install your local copy into a virtualenv and set up your fork for local development::

$ virtualenv --no-site-packages venvs/fsp
$ source venvs/fsp/bin/activate
$ cd fsp

4. Install the requirements::

$ pip install -r source/requirements.txt

Note: make changes to the source/content/pages/\*.rst files then execute a
*make run* command from the source/ directory.

5. Commit your changes and push your branch to GitHub::

$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin gh-pages

6. Submit a pull request through the GitHub website.

**Keep your fork in Sync**

1. To keep your fork in sync with the original repo, add an `upstream remote <https://help.github.com/articles/configuring-a-remote-for-a-fork/>`_::

$ git remote add upstream [email protected]:makaimc/fullstackpython.com.git

2. Sync your repo with the original repo::

$ git fetch upstream
$ git merge upstream/gh-pages
20 changes: 20 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
The MIT License (MIT)

Copyright (c) 2012-2017 Matthew Makai

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
See the [gh-pages](https://github.com/makaimc/fullstackpython.github.com/tree/gh-pages) branch for source code.
This repository contains the source code for
[Full Stack Python](https://www.fullstackpython.com/).

226 changes: 226 additions & 0 deletions about-author.html

Large diffs are not rendered by default.

11,545 changes: 11,545 additions & 0 deletions all.html

Large diffs are not rendered by default.

243 changes: 243 additions & 0 deletions apache-cassandra.html

Large diffs are not rendered by default.

259 changes: 259 additions & 0 deletions apache-http-server.html

Large diffs are not rendered by default.

494 changes: 494 additions & 0 deletions api-creation.html

Large diffs are not rendered by default.

328 changes: 328 additions & 0 deletions api-integration.html

Large diffs are not rendered by default.

406 changes: 406 additions & 0 deletions application-dependencies.html

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions application-programming-intefaces.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=https://www.fullstackpython.com/application-programming-interfaces.html">
</head>
<body>
</body>
</html>
310 changes: 310 additions & 0 deletions application-programming-interfaces.html

Large diffs are not rendered by default.

158 changes: 158 additions & 0 deletions author/matt-makai.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
<!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 - Articles by Matt MakaiFull 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}
h1{font-size:40px}
h3{font-size:22px}
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}
.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">Sponsored By</h3>
</div>
<div class="panel-body">
<a href="https://realpython.com/?utm_source=fsp&amp;utm_medium=promo&amp;utm_campaign=frontpage"><img src="/img/sponsored/realpython.jpg" alt="Real Python logo" width="100%"></a>
<p style="font-size: .8em;">If you're searching for step-by-step Python
web development tutorials then I highly recommend
<a href="https://realpython.com/?utm_source=fsp&amp;utm_medium=promo&amp;utm_campaign=frontpage" onclick="trackOutboundLink('https://realpython.com/?utm_source=fsp&amp;utm_medium=promo&amp;utm_campaign=frontpage'); return false;">checking out Real Python</a>.
</p>
</div>
</div> <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></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>
Loading