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