Урок 1. 00:02:45
Why you should take this course!
Урок 2. 00:01:06
Introduction to this section
Урок 3. 00:05:45
Our project and endpoints
Урок 4. 00:09:54
Reviewing the beginner course code
Урок 5. 00:01:49
Simplifying our error handling
Урок 6. 00:04:13
Refactoring our resources
Урок 7. 00:04:22
Should we have unique names?
Урок 8. 00:08:34
Adding basic type hinting
Урок 9. 00:06:46
Adding custom JSON types
Урок 10. 00:03:14
Using the current class as a type hint
Урок 11. 00:10:10
Using Black for code formatting
Урок 12. 00:08:03
Improving errors with constants
Урок 13. 00:06:58
@classmethod across the board
Урок 14. 00:09:21
Testing our API with Postman
Урок 15. 00:00:38
Conclusion of this section
Урок 16. 00:00:42
Introduction to this section
Урок 17. 00:08:46
Serialization with Marshmallow
Урок 18. 00:06:17
Deserialization with Marshmallow
Урок 19. 00:16:24
Migrating from virtualenv to Pipenv
Урок 20. 00:14:24
Using vanilla Marshmallow with the API
Урок 21. 00:13:31
Introduction to Flask-Marshmallow
Урок 22. 00:12:39
Adding items to our REST API
Урок 23. 00:09:28
Adding stores to our REST API
Урок 24. 00:04:20
Deduplicating error handling
Урок 25. 00:00:49
Conclusion of this section
Урок 26. 00:01:43
Introduction to this section
Урок 27. 00:05:38
Introduction to e-mail confirmation
Урок 28. 00:03:29
Adding an activated property
Урок 29. 00:06:01
Activating users manually
Урок 30. 00:15:28
Telling users they are active
Урок 31. 00:03:13
Setting up Mailgun
Урок 32. 00:13:51
Sending e-mails with Mailgun (Part 1)
Урок 33. 00:03:44
Sending e-mails with Mailgun (Part 2)
Урок 34. 00:07:57
Creating our Mailgun library file
Урок 35. 00:05:50
Using .env files in Flask
Урок 36. 00:01:53
Adding more configuration to .env
Урок 37. 00:09:12
Error handling in Mailgun
Урок 38. 00:01:16
Conclusion of this section
Урок 39. 00:01:09
Introduction to this section
Урок 40. 00:15:31
Creating the ConfirmationModel
Урок 41. 00:08:12
Changes in our UserModel
Урок 42. 00:17:25
Creating our ConfirmationResource
Урок 43. 00:05:04
Updating our UserResource
Урок 44. 00:03:28
Adding the last confirmation to the user schema
Урок 45. 00:06:28
Fixing our app.py
Урок 46. 00:05:03
Cross-resource dependencies are (generally) bad
Урок 47. 00:11:41
What are localisation and internationalisation?
Урок 48. 00:04:13
Storing strings in config files
Урок 49. 00:09:45
Creating a simple translation library
Урок 50. 00:10:56
Updating our resources to use translations
Урок 51. 00:05:24
Adding a new language to our API
Урок 52. 00:06:12
What is Flask-Babel?
Урок 53. 00:03:58
Common pitfalls and advice
Урок 54. 00:01:58
Conclusion of this section
Урок 55. 00:01:28
Introduction to this section
Урок 56. 00:04:08
Collection and request descriptions
Урок 57. 00:04:37
Recap of Postman environments
Урок 58. 00:14:08
JavaScript tests in Postman
Урок 59. 00:15:35
Running entire collections in Postman
Урок 60. 00:08:49
Adding example requests and responses
Урок 61. 00:00:36
Previewing our Postman documentation
Урок 62. 00:03:48
Publishing our documentation page
Урок 63. 00:06:28
More options for publishing documentation
Урок 64. 00:01:00
Conclusion of this section
Урок 65. 00:00:35
Introduction to this section
Урок 66. 00:01:35
Installing Flask-Uploads
Урок 67. 00:16:42
Config files in Flask
Урок 68. 00:12:07
What are wsgi and Werkzeug?
Урок 69. 00:16:57
Creating our image helper library
Урок 70. 00:06:37
Creating our image schema
Урок 71. 00:09:11
Creating our image upload resource
Урок 72. 00:08:23
Trying out our image upload
Урок 73. 00:10:00
Retrieving and deleting images
Урок 74. 00:10:59
Another example: user avatars
Урок 75. 00:05:47
Adding the avatar resource
Урок 76. 00:01:11
Conclusion of this section
Урок 77. 00:01:17
Introduction to this section
Урок 78. 00:01:28
What's in our starter code?
Урок 79. 00:03:11
Connecting to our remote database
Урок 80. 00:06:33
Initialising Flask-Migrate and Alembic
Урок 81. 00:08:07
Creating our initial table structure
Урок 82. 00:03:06
Our first database migration
Урок 83. 00:06:22
Checking the Alembic script (important!)
Урок 84. 00:02:02
Adding a new column with migrations
Урок 85. 00:05:35
Problems that can happen while migrating
Урок 86. 00:01:47
A word of caution!
Урок 87. 00:06:23
Defining a SQLAlchemy naming convention
Урок 88. 00:05:07
When should you read documentation?
Урок 89. 00:01:04
Conclusion of this section
Урок 90. 00:00:59
Introduction to this lecture
Урок 91. 00:09:58
Introduction to OAuth 2.0
Урок 92. 00:03:35
What's in our starter code?
Урок 93. 00:03:57
Creating a GitHub OAuth App
Урок 94. 00:04:14
Flask-OAuthlib
Урок 95. 00:07:50
Setting up our GitHub client
Урок 96. 00:05:31
Our GithubLogin resource
Урок 97. 00:05:46
What is Flask's g?
Урок 98. 00:10:46
What is a tokengetter?
Урок 99. 00:05:43
Finishing our GithubAuthorize resource
Урок 100. 00:02:15
Adding some error handling
Урок 101. 00:08:43
Setting user passwords
Урок 102. 00:03:00
Using url_for with Flask-RESTful
Урок 103. 00:01:09
Conclusion of this section
Урок 104. 00:00:36
Introduction to this section
Урок 105. 00:06:02
Setting up our Stripe account
Урок 106. 00:04:30
What's in our starter code?
Урок 107. 00:06:44
Where do users pay?
Урок 108. 00:12:25
After payment: receiving order data
Урок 109. 00:11:13
Creating our OrderModel
Урок 110. 00:10:27
Many-to-many relationships with SQLAlchemy
Урок 111. 00:16:37
Using the Association Object in our Resourcee
Урок 112. 00:10:30
Charging orders with Stripe
Урок 113. 00:06:46
Calculating the amount and description
Урок 114. 00:04:13
Testing our OrderResource
Урок 115. 00:02:42
Creating a way to view existing orders
Урок 116. 00:04:27
When things go wrong: error handling in Stripe
Урок 117. 00:03:12
Security considerations in payments
Урок 118. 00:01:07
Conclusion of this section
Урок 119. 00:00:36
Conclusion of the course