Урок 1.00:00:44
Introducing the course
Урок 2.00:01:36
The incredible power of web
Урок 3.00:03:17
What is fullstack development?
Урок 4.00:01:34
Student expectations and pre-reqs
Урок 5.00:02:28
The technologies we will learn
Урок 6.00:05:18
What can you build with Python?
Урок 7.00:06:05
Course topics
Урок 8.00:00:52
Meet your instructor
Урок 9.00:02:06
What app will we build for this course?
Урок 10.00:02:05
Video player: A quick feature tour
Урок 11.00:02:40
Do you have Python 3? How do you get it?
Урок 12.00:00:59
Our code editor
Урок 13.00:00:36
Git the source code
Урок 14.00:01:26
Following along
Урок 15.00:02:39
What are microframeworks?
Урок 16.00:03:32
Building blocks of Flask
Урок 17.00:03:01
Building block: Views
Урок 18.00:01:16
Building block: Routes and URLs
Урок 19.00:01:49
Building block: Models
Урок 20.00:02:29
Building block: Dynamic HTML Templates
Урок 21.00:00:59
Get the back story
Урок 22.00:02:58
Introduction to creating a Flask website
Урок 23.00:05:56
Demo: CLI starter site
Урок 24.00:03:00
Concepts: CLI starter site
Урок 25.00:03:47
Demo: Creating the starter project PyCharm
Урок 26.00:01:26
Concept: Creating the starter project PyCharm
Урок 27.00:03:10
Project structure
Урок 28.00:01:24
Template chapter introduction
Урок 29.00:02:31
Jinja2 template example
Урок 30.00:03:42
Create the PyPI site
Урок 31.00:08:11
Our first jinja template
Урок 32.00:01:43
Concept: Jinja2 templates
Урок 33.00:03:20
Layout: Motivation
Урок 34.00:01:13
Jinja2 autocomplete in PyCharm
Урок 35.00:05:21
Adding a simple nav element
Урок 36.00:05:08
Creating a common layout page
Урок 37.00:02:02
Better organization for your template files
Урок 38.00:02:29
Concepts: Common layout
Урок 39.00:01:35
Project structure with shared layout
Урок 40.00:03:38
Demo: @response a better render_template
Урок 41.00:02:03
Concept: @response a better render_template
Урок 42.00:03:52
Routing visualized
Урок 43.00:01:23
Demo: Routing, loading the project
Урок 44.00:09:13
Refactoring view methods with Flask blueprints
Урок 45.00:01:21
Concept: Refactoring view methods with Flask blueprints
Урок 46.00:03:42
Adding a constrained route
Урок 47.00:02:59
The account management routes
Урок 48.00:01:29
Concept: Create route from url
Урок 49.00:07:55
How to build a CMS in 8 minutes
Урок 50.00:01:18
Concept: Routing to add a custom CMS
Урок 51.00:00:54
What we'll cover
Урок 52.00:02:03
CSS Front-end framework survey
Урок 53.00:04:51
Introduction to using Bootstrap
Урок 54.00:01:00
Running in a real web server
Урок 55.00:02:53
Intro to grid layout
Урок 56.00:01:13
Responsive browser tools
Урок 57.00:01:35
Grid layout in action
Урок 58.00:03:25
Adding to the grid
Урок 59.00:01:44
Concept: Grid layout
Урок 60.00:01:15
Buttons and forms
Урок 61.00:04:48
Buttons and forms in action
Урок 62.00:03:32
Style the login form
Урок 63.00:01:31
Concept: Buttons and forms
Урок 64.00:01:43
Why Bootstrap themes are awesome
Урок 65.00:05:45
Bootstrap theme tour
Урок 66.00:03:15
Our site design
Урок 67.00:05:12
Home page HTML
Урок 68.00:05:23
The making of the hero
Урок 69.00:03:20
Stats slice
Урок 70.00:03:49
New releases
Урок 71.00:03:50
Adding the navigation
Урок 72.00:03:57
Final footer
Урок 73.00:04:07
Introducing SQLAlchemy
Урок 74.00:01:35
Who uses SQLAlchemy?
Урок 75.00:02:14
Architecture
Урок 76.00:03:11
The database model
Урок 77.00:08:31
Modeling packages
Урок 78.00:01:52
SQLAlchemy model base class
Урок 79.00:06:01
Connecting to our 'database'
Урок 80.00:06:27
Creating tables
Урок 81.00:05:01
Indexes
Урок 82.00:04:25
The rest of the tables
Урок 83.00:07:17
Relationships
Урок 84.00:04:15
Concepts: Modeling
Урок 85.00:02:19
Creating the basic insert script
Урок 86.00:01:36
Connecting to the database (again)
Урок 87.00:01:34
Setting package values
Урок 88.00:03:37
Saving the package to the db
Урок 89.00:02:35
Running the inserts
Урок 90.00:01:21
Adding type hints to the session factory
Урок 91.00:01:39
Inserting real PyPI data
Урок 92.00:02:23
Concept: Unit of work
Урок 93.00:05:55
Querying data: Home page
Урок 94.00:09:04
Querying data: Latest releases
Урок 95.00:09:19
Working with package details
Урок 96.00:04:03
Concept: Querying data
Урок 97.00:00:45
Concept: Ordering data
Урок 98.00:00:49
Concept: Database updates
Урок 99.00:02:00
Concept: Relationships
Урок 100.00:00:37
Concept: Inserting data
Урок 101.00:03:47
Introducing database migrations
Урок 102.00:02:32
Getting started with Alembic
Урок 103.00:09:17
Our first change
Урок 104.00:05:29
More database changes
Урок 105.00:01:44
Concept: Getting started
Урок 106.00:03:10
Concept: Alembic - the manual version
Урок 107.00:01:51
Concept: auto-generating changes
Урок 108.00:03:14
The basics of HTML input
Урок 109.00:02:36
GET-POST-Redirect pattern
Урок 110.00:03:14
Register for the site (getting started)
Урок 111.00:01:43
Registration form
Урок 112.00:04:45
A little design for the register form
Урок 113.00:02:44
Register POST action
Урок 114.00:05:09
Getting the submitted values
Урок 115.00:06:59
Creating the user
Урок 116.00:01:09
Login form
Урок 117.00:03:20
Login code
Урок 118.00:07:16
Creating a user session (cookies)
Урок 119.00:02:54
Navigation items based on user's session
Урок 120.00:04:20
One source of data
Урок 121.00:02:50
The motivation for viewmodels
Урок 122.00:04:16
Viewmodel base class
Урок 123.00:03:19
Using a viewmodel
Урок 124.00:10:24
The register viewmodel
Урок 125.00:01:41
Concept: Viewmodel
Урок 126.00:01:23
Simplified view methods
Урок 127.00:01:45
Viewmodel data exchange
Урок 128.00:01:37
Server-side validation with Viewmodels
Урок 129.00:04:55
Client-side validation with HTML5
Урок 130.00:01:26
Concept: Client-side validation with HTML5
Урок 131.00:02:10
Why write tests (web)
Урок 132.00:02:33
Special challenges of the web
Урок 133.00:03:09
3 types of web unit tests
Урок 134.00:03:00
Organizing your tests
Урок 135.00:03:46
Getting started with tests
Урок 136.00:05:49
Testing the register viewmodel
Урок 137.00:03:26
Avoiding the database call on register
Урок 138.00:02:26
Testing registration when inputs are invalid
Урок 139.00:01:34
Concept: Testing view models
Урок 140.00:05:28
Testing view methods
Урок 141.00:03:47
Concept Testing view methods
Урок 142.00:05:40
Integrated tests
Урок 143.00:02:29
The rest of the tests
Урок 144.00:02:10
Running tests outside of PyCharm
Урок 145.00:01:02
Concept: Testing the full web app
Урок 146.00:04:45
Pareto principle and testing with sitemaps
Урок 147.00:03:45
Deployment overview and topology
Урок 148.00:05:15
02-creating-our-linux-server
Урок 149.00:03:12
The setup script and config files
Урок 150.00:07:47
Configure the server
Урок 151.00:01:44
Make the virtual environment always active
Урок 152.00:02:52
Setting up our code
Урок 153.00:03:28
Running under uWSGI
Урок 154.00:02:03
uWSGI as a service
Урок 155.00:03:30
Running in nginx
Урок 156.00:03:58
Adding SSL with Let's Encrypt
Урок 157.00:01:20
Concept: uWSGI
Урок 158.00:01:19
Concept: nginx
Урок 159.00:01:42
Introduction to the NoSQL version
Урок 160.00:00:55
Not a MongoDB course
Урок 161.00:01:15
How document databases work
Урок 162.00:04:56
Connecting to MongoDB
Урок 163.00:03:41
The user entity with mongoengine
Урок 164.00:03:25
Saving a user
Урок 165.00:01:44
The rest of the entities
Урок 166.00:06:01
Rewriting our queries
Урок 167.00:02:27
Fixing the login
Урок 168.00:03:21
Importing the data from SQL to Mongo
Урок 169.00:04:52
Home page cleanup
Урок 170.00:03:32
Package details cleanup
Урок 171.00:04:25
Concepts: MongoEngine and MongoDB
Урок 172.00:00:41
You've done it!
Урок 173.00:01:01
Creating a new Flask app
Урок 174.00:01:44
Jinja2 templates and dynamic HTML
Урок 175.00:00:57
Layout pages
Урок 176.00:01:35
Routes
Урок 177.00:00:45
Themes
Урок 178.00:01:10
Querying data
Урок 179.00:00:39
Database migrations
Урок 180.00:01:17
GET-POST-Redirect
Урок 181.00:01:30
viewmodels
Урок 182.00:01:03
Testing web apps
Урок 183.00:01:18
Deployment
Урок 184.00:00:55
MongoDB edition
Урок 185.00:00:23
git the source code
Урок 186.00:00:23
Thanks and goodbye