Урок 1.00:03:40
Welcome to the course
Урок 2.00:01:02
The rules of #100DaysOfCode
Урок 3.00:04:51
Topics covered
Урок 4.00:02:03
Why Python for #100DaysOfCode
Урок 5.00:02:21
Course flow
Урок 6.00:01:30
Meet your instructors
Урок 7.00:01:11
Need a Python primer?
Урок 8.00:02:14
Git the source code
Урок 9.00:01:29
Three devs are better than one
Урок 10.00:00:34
Julian's setup
Урок 11.00:00:36
Bob's setup
Урок 12.00:02:46
Michael's setup
Урок 13.00:02:48
PyBites code challenge platform
Урок 14.00:02:05
Video player: A quick feature tour
Урок 15.00:00:59
Introduction to Flask
Урок 16.00:02:16
Your Next 4 Days
Урок 17.00:03:40
Install and Setup Flask
Урок 18.00:02:57
Setup your Flask app as a package
Урок 19.00:02:33
Create __init.py__
Урок 20.00:03:10
Define your Flask app routes in routes.py
Урок 21.00:03:42
Run your Flask app!
Урок 22.00:03:03
Persistent FLASK_APP environment variable using python-dotenv
Урок 23.00:04:52
Creating a basic index.html Flask Template
Урок 24.00:07:19
Creating the base.html Flask Template
Урок 25.00:04:30
A new template for a 100DaysOfCode page
Урок 26.00:03:25
Using CSS, create Menu Bar in the Base Template
Урок 27.00:04:57
Day 4: Your Turn - What did we learn?
Урок 28.00:01:05
HTML Chapter Intro
Урок 29.00:01:43
HTML is easy right?
Урок 30.00:03:41
A little HTML history
Урок 31.00:00:51
Our editor for this chapter: WebStorm
Урок 32.00:01:16
Yahoo, circa 1996
Урок 33.00:12:22
Building Yaahoo
Урок 34.00:02:42
Concept: Core HTML tags
Урок 35.00:03:41
Form basics
Урок 36.00:02:55
Describing form elements
Урок 37.00:05:37
Client-side validation
Урок 38.00:02:03
Your-turn
Урок 39.00:01:39
Lesson introduction
Урок 40.00:04:50
What are APIs, why you want them and API Star
Урок 41.00:06:51
Getting fake cars data with Mockeroo
Урок 42.00:04:07
API Star structure and its type system
Урок 43.00:11:39
API methods: GET and POST, testing with Postman
Урок 44.00:03:09
API methods: PUT and DELETE
Урок 45.00:11:15
Testing your API with pytest
Урок 46.00:02:42
Day 3 & 4 - Your turn: build your own API
Урок 47.00:01:23
CSS chapter intro
Урок 48.00:03:38
Goals of this chapter
Урок 49.00:04:12
CSS Zen Garden
Урок 50.00:03:51
Concept: Structure of a CSS file
Урок 51.00:01:20
Demo app introduction
Урок 52.00:04:14
Demo: Exploring CSS selectors
Урок 53.00:01:56
Concept: Inheritance and specialization
Урок 54.00:04:18
Demo: Box model
Урок 55.00:01:11
Concept: Controlling the box in CSS
Урок 56.00:07:19
Demo: Layout
Урок 57.00:04:03
Demo: Floating elements
Урок 58.00:00:59
Concept: Floating elements
Урок 59.00:04:02
Areas to research further
Урок 60.00:01:08
Your-turn: Day 2
Урок 61.00:02:20
Your-turn: Day 3
Урок 62.00:01:41
Your-turn: Day 4
Урок 63.00:00:35
Introduction: Calling APIs in Flask
Урок 64.00:02:29
Your 4 day overview
Урок 65.00:04:38
Environment setup
Урок 66.00:07:11
Passing variables between Flask app code and a Template
Урок 67.00:03:47
Working with the Chuck Norris API
Урок 68.00:05:24
Passing our Chuck Norris joke to a Template
Урок 69.00:01:36
Investigating the Poke API
Урок 70.00:08:17
Creating a form in our Pokemon Template
Урок 71.00:06:46
Breaking down the Poke API response
Урок 72.00:06:52
Writing the Pokemon route
Урок 73.00:06:57
Returning the data to the Pokemon Template
Урок 74.00:04:13
Day 4: Your Turn - What did we learn?
Урок 75.00:02:02
Introducing asynchronous web programming
Урок 76.00:04:35
Synchronous execution concepts
Урок 77.00:06:16
Synchronous execution demo
Урок 78.00:09:10
Asynchronous Python execution with async and await
Урок 79.00:02:25
Asynchronous execution concepts
Урок 80.00:02:43
Your turn: Day 2 - Async program
Урок 81.00:02:08
Flask will never be async capable
Урок 82.00:07:12
Introducing our web app: The cityscape API
Урок 83.00:02:59
Converting from Flask to Quart
Урок 84.00:05:11
Adding an async view method / controller method
Урок 85.00:02:34
Async all the things
Урок 86.00:02:09
Concept: Quart
Урок 87.00:04:09
Performance comparison: Flask vs Quart
Урок 88.00:01:42
Your turn: Day 4 - Async Flask conversion
Урок 89.00:00:49
Lesson introduction
Урок 90.00:02:52
4 day plan
Урок 91.00:03:17
History and why JavaScript
Урок 92.00:04:23
How to run JS in your browser / terminal / IDE
Урок 93.00:05:28
Variables (var vs let) and data types
Урок 94.00:04:51
Arrays
Урок 95.00:05:55
Conditionals and control flow
Урок 96.00:09:19
Functions
Урок 97.00:03:53
Objects
Урок 98.00:03:11
Day 2: 4 JS exercises
Урок 99.00:08:04
The Document Object Model (DOM) - targeting elements
Урок 100.00:08:59
DOM part II: add/remove childs, override CSS, event listeners
Урок 101.00:02:55
Debugging JavaScript
Урок 102.00:03:31
Common JS gotchas
Урок 103.00:03:09
Further study
Урок 104.00:04:08
Day 4: simple calculator and calorie tracker
Урок 105.00:00:37
Introduction: Static Sites
Урок 106.00:02:01
Your 4 day overview
Урок 107.00:04:53
What exactly is a static site anyway?
Урок 108.00:01:46
Setup: Create your repo
Урок 109.00:04:45
Configure Pelican
Урок 110.00:06:49
Writing our first post!
Урок 111.00:03:48
Generating the site
Урок 112.00:05:11
Setting up and deploying to Netlify
Урок 113.00:04:30
Linking to static content
Урок 114.00:02:23
How sweet is Netlify auto-build?
Урок 115.00:03:48
Creating a dedicated static page
Урок 116.00:01:36
Custom domains on Netlify
Урок 117.00:03:20
What did we learn?
Урок 118.00:04:07
Introducing SQLAlchemy
Урок 119.00:01:47
Our demo app: A scooter sharing startup
Урок 120.00:01:35
Who uses SQLAlchemy?
Урок 121.00:02:10
SQLAlchemy Architecture
Урок 122.00:01:13
Scooter share data model
Урок 123.00:03:39
Setting up our app
Урок 124.00:05:42
Modeling with classes
Урок 125.00:03:34
The rest of the classes
Урок 126.00:03:58
Connecting to our DB
Урок 127.00:03:29
Creating the database schema and tables
Урок 128.00:02:36
The database is created
Урок 129.00:04:25
Relationships
Урок 130.00:06:02
Inserts
Урок 131.00:04:38
The rest of the queries
Урок 132.00:02:05
Importing starter data
Урок 133.00:06:32
Finishing the app
Урок 134.00:00:23
Listen to the interview
Урок 135.00:03:17
Your turn: Days 3 and 4
Урок 136.00:01:35
Pyramid chapter intro
Урок 137.00:01:57
Our demo application
Урок 138.00:02:29
A spectrum of frameworks
Урок 139.00:02:57
Pyramid principles
Урок 140.00:00:24
Get back story
Урок 141.00:02:16
Creating the app: Intro
Урок 142.00:06:32
Creating the app: Via the CLI
Урок 143.00:02:46
Creating the app: Via PyCharm
Урок 144.00:04:31
A tour of a Pyramid project
Урок 145.00:04:29
Reorganizing our app
Урок 146.00:04:35
Adding the data models
Урок 147.00:04:05
Home page (fake data)
Урок 148.00:06:52
Home page (database data)
Урок 149.00:01:43
HTML towards details and a better design
Урок 150.00:03:00
Design and hero images
Урок 151.00:06:07
Adding the details route
Урок 152.00:05:49
Paying a bill: Submitting forms
Урок 153.00:02:52
Concept: Chameleon
Урок 154.00:03:14
Your-turn: Day 3
Урок 155.00:00:45
Your-turn: Day 4
Урок 156.00:02:11
Intro: what is React, why use it?
Урок 157.00:07:38
Brushing up some ES6 (modern) JS
Урок 158.00:04:20
Bootstrap our app with create-react-app
Урок 159.00:06:49
JSX and rendering a tip component
Урок 160.00:02:43
Interlude: Python Tips API back-end setup
Урок 161.00:05:46
Using classes and state in React
Урок 162.00:08:07
Calling the tips API using axios
Урок 163.00:04:41
Filter tips while typing in a search field
Урок 164.00:04:41
Style matching tips with react-highlight-words
Урок 165.00:01:00
Day 2: build your own API front-end using React
Урок 166.00:07:01
Structuring our Free Monkey (hangman) app
Урок 167.00:02:53
Constructor, componentDidMount, and first render
Урок 168.00:05:18
Setting the initial game state
Урок 169.00:03:15
Creating letter buttons with event handlers
Урок 170.00:06:07
Matching guess letters and updating the state
Урок 171.00:02:32
Adding CSS styles to the buttons upon guessing
Урок 172.00:08:06
Check win/loss scenarios, adding a reset game button
Урок 173.00:02:32
Day 4: build your own game using React
Урок 174.00:00:31
Lesson introduction
Урок 175.00:01:29
The structure of this 4 day module
Урок 176.00:03:43
Django starter and architecture
Урок 177.00:01:54
Demo quote CRUD app we will build
Урок 178.00:03:00
Get Django up and running
Урок 179.00:04:10
Basic Django configuration
Урок 180.00:05:18
URL routing and your first view
Урок 181.00:04:21
Create a Django model and migrate it to the DB
Урок 182.00:06:28
Playing with the ORM in Django's shell
Урок 183.00:01:19
Day 2: practice yourself
Урок 184.00:06:17
The quotes app url mapping
Урок 185.00:01:59
Create a Django form
Урок 186.00:02:49
Write a view to list all the quotes
Урок 187.00:04:55
Static files and the base template
Урок 188.00:06:40
Template settings and create a child template
Урок 189.00:04:00
Make a view/page to view an individual quote
Урок 190.00:06:44
Write a view to add a new quote
Урок 191.00:02:58
Write a view to edit a quote
Урок 192.00:04:07
Write a view to delete a quote
Урок 193.00:09:39
Refactor function-based into class-based views
Урок 194.00:03:10
Add the quotes app to Django's admin interface
Урок 195.00:01:30
Day 4: practice yourself
Урок 196.00:01:18
Lesson introduction
Урок 197.00:06:01
Virtual environment, dependencies, pytest starter code (fixtures)
Урок 198.00:06:59
Selenium's find_element_by methods, test #1: homepage
Урок 199.00:08:08
Test #2: testing individual book pages and JS autocomplete
Урок 200.00:06:20
Test #3: testing the login, using the debugger with pytest
Урок 201.00:09:45
Test #4: a test function for adding/deleting a book
Урок 202.00:04:16
Test #5: testing changing nav links upon logout
Урок 203.00:01:08
Optional Code Challenge: test a simple Django app
Урок 204.00:00:50
Introducing responder
Урок 205.00:02:10
Key features
Урок 206.00:00:48
Foundational projects
Урок 207.00:01:08
What API will we build?
Урок 208.00:01:44
Setting up the project
Урок 209.00:01:46
Adding the 'hello world' view method
Урок 210.00:02:26
Using dynamic HTML templates (Jinja2)
Урок 211.00:01:35
Serving static files
Урок 212.00:02:51
API view methods
Урок 213.00:03:03
Adding a data backend
Урок 214.00:04:11
Implementing the search APIs
Урок 215.00:04:28
Cleanup and refactoring for real web apps
Урок 216.00:02:01
Responder core concepts
Урок 217.00:00:54
Introduction: Twilio
Урок 218.00:01:50
Your single day overview
Урок 219.00:03:00
Twilio account setup
Урок 220.00:01:07
Obtaining your Twilio API key
Урок 221.00:04:41
Write a quick and easy Twilio SMS script
Урок 222.00:02:13
Twilio UI: Verified numbers and usage stats
Урок 223.00:01:58
What did we learn?
Урок 224.00:00:43
Chapter intro
Урок 225.00:02:07
What is full stack web development?
Урок 226.00:01:01
What application will we build?
Урок 227.00:00:54
Introducing Anvil
Урок 228.00:02:42
Anvil's building blocks
Урок 229.00:02:09
Anvil: New project
Урок 230.00:02:28
Adding navigation
Урок 231.00:02:07
Subforms
Урок 232.00:04:20
Linking the forms
Урок 233.00:02:09
Building the add document form
Урок 234.00:04:45
Add new document validation
Урок 235.00:02:32
Data tables
Урок 236.00:03:27
Server-side code
Урок 237.00:02:54
Creating the document in the database
Урок 238.00:04:52
Add doc form finale
Урок 239.00:06:55
All docs form
Урок 240.00:01:32
Adding filtering to all docs form
Урок 241.00:03:05
Adding filtering (continued)
Урок 242.00:02:48
Viewing document details
Урок 243.00:01:56
Publishing our Anvil app on the Internet
Урок 244.00:02:56
Concepts of Anvil
Урок 245.00:01:14
Lesson introduction
Урок 246.00:05:17
The structure of this 4 day module
Урок 247.00:04:57
Installing and configuring django-registration
Урок 248.00:02:58
Setting up urls.py for the two-step activation workflow
Урок 249.00:04:39
Setting required django-registration templates
Урок 250.00:01:21
Setting up a SendGrid account
Урок 251.00:07:22
Django SMTP configuration and testing out email
Урок 252.00:05:01
Adding login and logout links to the navigation bar
Урок 253.00:03:30
Update the Quote model to associate quotes with users
Урок 254.00:06:31
Update templates to only show edit buttons to quote owners
Урок 255.00:04:49
Protecting views with Django's @login_required decorator
Урок 256.00:01:25
Day 3 + 4: practice yourself
Урок 257.00:00:33
Introduction: Flask Login
Урок 258.00:03:25
Let's start by setting some expectations
Урок 259.00:03:16
Your 4 day overview
Урок 260.00:03:01
Setup: Flask and Project directory
Урок 261.00:06:22
Setup: A Barebones Flask app
Урок 262.00:06:19
Define your database model
Урок 263.00:02:45
Specify the db object in __init.py__
Урок 264.00:00:53
Setup: Install SQLite DB Browser
Урок 265.00:03:17
Create the database!
Урок 266.00:05:01
Make the create-user Jinja Template
Урок 267.00:05:46
Add functionality to create users
Урок 268.00:01:15
Specify the app secret key
Урок 269.00:02:41
Let's add some users!
Урок 270.00:08:33
Incorporate Flask-Login
Урок 271.00:03:41
Test it! Login to the app
Урок 272.00:03:44
Create a quick logout page
Урок 273.00:04:30
What did we learn?
Урок 274.00:02:29
Introduction to db migrations
Урок 275.00:02:33
Seeing the problem in action
Урок 276.00:03:45
Installing Alembic
Урок 277.00:01:48
Fix an error: Alembic distribution not found
Урок 278.00:02:04
Concept: Review configuring Alembic
Урок 279.00:05:09
Automatically detecting schema changes
Урок 280.00:01:44
Where is the DB version stored?
Урок 281.00:03:02
Concept: Alembic migrations
Урок 282.00:03:17
Your-turn: Days 2, 3, and 4
Урок 283.00:01:00
Introduction: Heroku
Урок 284.00:01:34
Your 4 day overview
Урок 285.00:02:39
Setup your Heroku account and install the Heroku CLI
Урок 286.00:04:37
Setting up the local app and Heroku environment
Урок 287.00:07:39
Deploy and launch your first Heroku app!
Урок 288.00:03:53
What are Heroku addons?
Урок 289.00:02:45
Install Heroku scheduler
Урок 290.00:06:25
Automate sending emails with Heroku scheduler
Урок 291.00:03:46
Heroku SendGrid addon setup
Урок 292.00:06:24
Use SendGrid to send an email
Урок 293.00:02:53
What did we learn?
Урок 294.00:02:01
Lesson intro
Урок 295.00:05:02
Virtual env, install dependencies and quotes app
Урок 296.00:07:54
Writing a custom django-admin command
Урок 297.00:08:07
Create a simple Django REST API
Урок 298.00:03:41
Implement the other CRUD methods
Урок 299.00:07:43
Django REST permissions: authentication and authorization
Урок 300.00:05:16
API documentation with Swagger
Урок 301.00:02:59
Day 3 + 4: Your turn - build your own API
Урок 302.00:00:45
Introduction: Web Scraping
Урок 303.00:03:57
Your next 4 days
Урок 304.00:02:27
Prepare to scrape!
Урок 305.00:08:32
Dive into BeautifulSoup4 and Talk Python
Урок 306.00:07:31
Write a Talk Python Training web scraping script
Урок 307.00:03:31
Installing and introducing newspaper3k
Урок 308.00:08:08
Extra! Extra! Student scrapes a news article!
Урок 309.00:07:38
What did we learn?
Урок 310.00:01:20
Lesson intro
Урок 311.00:01:21
4 day plan
Урок 312.00:03:44
Project: automate #100DaysOfCode tweeting
Урок 313.00:04:00
Dependencies and outline script
Урок 314.00:04:15
Manage config data with configparser
Урок 315.00:03:48
Turn on logging
Урок 316.00:06:36
Get a tweet with requests and BeautifulSoup
Урок 317.00:07:08
Post to Twitter with tweepy
Урок 318.00:05:47
Easy command line interface with argparse
Урок 319.00:01:37
Day 2 - Your turn / Twitter API practice
Урок 320.00:01:41
Project: random book slash command
Урок 321.00:03:13
Create a Slack app and slash command
Урок 322.00:05:13
Create a Flask app and call our books API
Урок 323.00:03:13
Response data and Slack message formatting
Урок 324.00:03:23
Testing out the slash command with ngrok
Урок 325.00:01:21
Day 4 - Your turn / Slack API practice
Урок 326.00:01:29
Why test web apps?
Урок 327.00:02:35
Testing challenges of web applications
Урок 328.00:01:47
3 types of tests
Урок 329.00:01:51
Setting up the app to be tested
Урок 330.00:05:26
Adding view models
Урок 331.00:02:43
View models applied to details page
Урок 332.00:03:19
View models and forms
Урок 333.00:01:56
Concept: View models
Урок 334.00:05:44
Our first unit test
Урок 335.00:03:42
Mocking out database access
Урок 336.00:05:26
More view model tests
Урок 337.00:01:18
Concept: View model unit tests
Урок 338.00:04:14
View unit tests: index page
Урок 339.00:01:51
Running all the tests at once
Урок 340.00:01:45
Concept: Testing view methods
Урок 341.00:05:19
Writing the functional tests
Урок 342.00:01:42
Concept: Functional tests
Урок 343.00:02:57
Concept: Web testing pareto principle
Урок 344.00:03:14
Your turn: Testing a web app
Урок 345.00:02:29
Lesson intro
Урок 346.00:02:20
A practical Lambda use case: CodeChalleng.es
Урок 347.00:04:36
4 day plan, PEP8 Checker app, setup
Урок 348.00:09:18
Build a simple Bottle web app
Урок 349.00:04:40
First Lambda: a simple calculator (using operator)
Урок 350.00:05:05
Creating Lambda test events
Урок 351.00:04:08
The glue: setting up AWS Gateway API
Урок 352.00:11:39
Second Lambda: PEP8 Checker (using pycodestyle)
Урок 353.00:05:36
Uploading a Lambda with external dependencies
Урок 354.00:02:47
Day 3 + 4: Your turn - create your own Lambda
Урок 355.00:01:20
Deploy introduction
Урок 356.00:02:59
Deployment moving parts overview
Урок 357.00:01:38
Deployment: What app to install?
Урок 358.00:02:18
Where to host our server
Урок 359.00:03:01
Creating our virtual server
Урок 360.00:01:48
Connecting and updating the Linux server
Урок 361.00:05:22
Server software config
Урок 362.00:05:20
Getting the Python source files on the server
Урок 363.00:05:49
Setting up uWSGI
Урок 364.00:04:14
Serving through nginx
Урок 365.00:01:48
A final check-in on the server
Урок 366.00:02:58
Concept: uWSGI setup
Урок 367.00:01:36
Concept: nginx setup
Урок 368.00:01:01
Deploying Flask web apps
Урок 369.00:01:01
Deploying Django web apps
Урок 370.00:02:52
Your turn: Deployment
Урок 371.00:01:57
Vue.js Chapter Introduction
Урок 372.00:02:21
What does a simple Vue.js app look like?
Урок 373.00:03:20
The starter project: Movie Exploder
Урок 374.00:04:28
Creating the Vue app instance
Урок 375.00:02:23
Enabling the Vue.js Plugin in PyCharm and WebStorm
Урок 376.00:02:20
Repeating data and HTML blocks
Урок 377.00:01:03
Concept: Repeating data
Урок 378.00:01:56
First, with fake data
Урок 379.00:03:03
Detailed movie details
Урок 380.00:01:33
Conditional rendering
Урок 381.00:01:05
Concept: Conditional rendering
Урок 382.00:03:19
Searching movies event
Урок 383.00:01:35
Top ten button
Урок 384.00:03:06
Displaying and selecting genres
Урок 385.00:02:58
A nicer dropdown
Урок 386.00:01:15
Selecting the genre
Урок 387.00:02:05
Install the Vue.js devtools
Урок 388.00:02:04
Your turn: Day 2
Урок 389.00:05:23
Searching movies via the API and axios
Урок 390.00:01:06
Concept: Calling API with axios
Урок 391.00:03:10
Genres via the service
Урок 392.00:02:12
Top 10 movies from API
Урок 393.00:02:29
Movies by genre through the API
Урок 394.00:02:32
Setting attributes with Vue.js
Урок 395.00:00:55
Look; no semicolons
Урок 396.00:01:26
Your turn: Day 4
Урок 397.00:01:35
Introduction to Docker chapter
Урок 398.00:03:10
Container history: Boats
Урок 399.00:03:29
Container history: Operating systems
Урок 400.00:02:26
Installing Docker on macOS, Windows, and Linux
Урок 401.00:04:03
Docker nomenclature
Урок 402.00:02:28
Code setup
Урок 403.00:01:55
Choosing a Docker base image
Урок 404.00:03:17
Running a Docker container
Урок 405.00:01:01
Productivity with Docker plugins for Pycharm
Урок 406.00:06:14
Building a Docker image
Урок 407.00:03:52
Installing glances
Урок 408.00:05:48
Nginx config for our static site
Урок 409.00:03:59
Serving external traffic from Docker
Урок 410.00:02:34
Using the local services container
Урок 411.00:10:56
Docker image for our Python services
Урок 412.00:03:40
Running the system as a whole
Урок 413.00:02:15
Docker cleanup and reclaiming disk space
Урок 414.00:03:16
Keep your Docker DRY (refactoring)
Урок 415.00:02:09
Concept: Dockerfile for the static site
Урок 416.00:03:48
Concept: Core Docker commands
Урок 417.00:02:37
Your-turn, day 2
Урок 418.00:02:20
Concept: Introduction to docker-compose
Урок 419.00:08:28
Building the services with docker-compose
Урок 420.00:01:17
Your-turn, day 4
Урок 421.00:00:31
You've done it!
Урок 422.00:01:22
What you've learned
Урок 423.00:00:30
Make sure you have the source
Урок 424.00:01:08
Stay immersed in Python
Урок 425.00:01:11
Continue to challenge yourself with PyBites
Урок 426.00:01:12
Thanks and goodbye
https://github.com/talkpython/100daysofweb-with-python-course