Building Data-Driven Web Apps with Pyramid and SQLAlchemy

Building Data-Driven Web Apps with Pyramid and SQLAlchemy

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 9h 10m | 3.98 GB

One of the areas Python really shines is in building clean and powerful web applications. Once you know the language basics, this course will teach you everything you need to build data-driven, modern web applications in Python.

Flask or Pyramid Web Framework?
This course is available in multiple web frameworks. Of course, this page is for the Pyramid version. It’s also available from us in the Flask web framework.

What’s this course about and how is it different?
Full stack web development is exactly what you need to build true data-driven web applications in Python. Yet these courses can be confusing and overwhelming due to the many technologies involved (Python, SQL, CSS, etc).

We have taken great care to build a course that is just real enough to give you what you need without anything extra. We build a replica of a popular web application, Python’s own packaging index over at pypi.org.

While building our replica PyPI, you will learn:

  • Learn about the different major Python web frameworks
  • Create a Pyramid-based website from scratch using the CLI and PyCharm
  • Work with dynamic HTML templates
  • Map URLs to view methods using routing
  • Make advanced use of routing to build a full custom CMS in 5 minutes
  • Take advantage of bootstrap to build well designed sites
  • Map data to and from Python using classes with SQLAlchemy
  • Learn how Alembic can help our database evolve as our models change
  • Accept user input with HTML forms
  • Add client and server-side validation
  • Overcome the special challenges of testing web apps (databases, frameworks, etc)
  • Deploy our web application to a fresh Linux machine (virtual, cloud-based)
  • Leverage our design patterns to convert our app to another data model (MongoDB edition)
Table of Contents

1 Introducing the course
2 The incredible power of web
3 What is fullstack development
4 Student expectations and prereqs
5 What can you build with Python
6 Course topics
7 Meet your instructor
8 Video player A quick feature tour
9 Do you have Python 3 How do you get it
10 Useful code editors
11 Concept autogenerating changes
12 The basics of HTML input
13 GETPOSTRedirect pattern
14 Register for the site getting started
15 Registration form
16 A little design for the register form
17 Register POST action
18 Getting the submitted values
19 Creating the user
20 Attempt to register
21 Get the source code
22 Login setup
23 Login form
24 Creating a user session cookies
25 Navigation items based on user sessions
26 Logging out
27 Concept GETPOSTRedirect pattern
28 One source of data
29 Concept One source of data
30 Serverside data exchange
31 Serverside validation
32 Following along
33 The viewmodel design pattern
34 Viewmodel data exchange
35 Viewmodel validation
36 Clientside validation with HTML5
37 Concept Clientside validation with HTML5
38 Why write tests web
39 Special challenges of the web
40 types of web unit tests
41 Organizing your tests
42 Getting started with tests
43 Choosing a Python web framework
44 Testing without the database
45 Concept Testing view models
46 Concept Testing view methods
47 Fixing the 404 package error
48 Concept view method tests
49 Testing the full web app
50 Concept Testing the full web app
51 Sitemaps and testing
52 Sitemaps testing in action
53 Deployment overview and topology
54 Pyramid principles
55 Creating our Linux server
56 The setup script and config files
57 Configure the server
58 Setting up our code
59 Configuring uWSGI
60 Configuring nginx
61 Concepts Deployment
62 Introduction to the NoSQL version
63 Not a MongoDB course
64 How document databases work
65 Pyramid building blocks
66 The new data model
67 Connecting to MongoDB
68 MongoDB entities
69 Rewriting our queries
70 Final adaptation user login
71 Importing the data from SQL to Mongo
72 Final cleanup
73 Concepts MongoEngine and MongoDB
74 Youve done it
75 Core concepts reviewed
76 Building block Views
77 Remember the source luke
78 Thanks and goodbye
79 Building block Routes and URLs
80 Building block Configuration
81 Building block Dynamic HTML Templates
82 Get the back story
83 Creating the starter project CLI
84 Demo CLI starter site
85 Concepts CLI starter site
86 Demo Creating the starter project PyCharm
87 Demo Creating the starter project PyCharm
88 Concept Creating the starter project PyCharm
89 Project structure
90 Template language comparison
91 Template comparison An example
92 Launching an existing project
93 Template demo
94 Concept Templates
95 Layout Motivation
96 Layout In action
97 Concept Layout
98 Project structure with layout
99 Routing overview
100 Demo Routing loading the project
101 Reorganizing the app
102 Adding the packagedetails route
103 Getting data from route
104 Packaging routes and views
105 Account routes and views
106 Concept Using the routes
107 Route constraints
108 Demo Building a CMS in 6 minutes
109 Concept CMS routes
110 What well cover
111 CSS Frontend framework survey
112 Introduction to using Bootstrap
113 Running in a real web server
114 Intro to grid layout
115 Grid layout in action
116 Adding to the grid
117 Concept Grid layout
118 Buttons and forms
119 Buttons and forms in action
120 Concept Buttons and forms
121 Bootstrap themes
122 Our site design
123 The bare site again
124 Home page HTML
125 The making of the hero
126 Stats slice
127 New releases
128 Navigation and footer
129 Final footer
130 Introducing SQLAlchemy
131 Who uses SQLAlchemy
132 Architecture
133 The database model
134 Modeling packages
135 SQLAlchemy model base class
136 Connecting to our database
137 Creating tables
138 Indexes
139 The rest of the tables
140 Relationships
141 Concepts Modeling
142 Inserting data
143 Inserting the actual data
144 Concept Unit of work
145 Querying data Home page
146 Querying data Latest releases
147 Working with package details
148 Package details data
149 Performance and lazy or eager loading
150 Concept Querying data
151 Concept Ordering data
152 Concept Database updates
153 Concept Relationships
154 Concept Inserting data
155 Get the full SQLAlchemy story
156 Introducing database migrations
157 Getting started with Alembic
158 Our first change
159 More database changes
160 Concept Getting started
161 Concept Alembic the manual version