The New and Improved Flask Mega-Tutorial – Miguel Grinberg

2,158.00

The Flask Mega-Tutorial is an overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework. The tutorial was born as a series of blog articles, and has been thoroughly revised, updated and expanded as a result of a successful Kickstarter campaign. The concepts that are covered go well beyond Flask, including a wide range of topics Python web developers need to know when writing their own applications.The goal of the course is to build a nicely featured social blogging web application. Chapter 1 begins with a very simple version of this application that has just a few lines of code. Then, each successive chapter adds a new feature to it. The 23 chapters in this course can be roughly split into two parts: the first 12 chapters are focused on basic web development concepts, while the remaining 11 chapters cover intermediate and advanced techniques. All the code featured in this tutorial is open source, and is available on GitHub. You are welcome to use any of it for your own projects!This new edition of the tutorial includes over 11 hours of video showing how to perform all the steps, plus the written version, which is an ebook of approximately 330 pages. The ebook can be read online, or downloaded in PDF, EPUB and MOBI formats.Course CurriculumEbook DownloadsThe Flask Mega-Tutorial Ebook DownloadsPrefacePrefaceChapter 1: Hello, World!Introduction (1:37)Installing Python (3:12)Installing Flask (4:52)A “Hello, World” Flask Application (11:24)Chapter 2: TemplatesIntroduction (1:59)What Are Templates? (8:12)Conditional Statements (1:39)Loops (4:08)Template Inheritance (3:37)Chapter 3: Web FormsIntroduction (0:38)Introduction to Flask-WTF (5:50)User Login Form (4:10)Form Templates (5:13)Form Views (3:51)Receiving Form Data (7:54)Improving Field Validation (2:50)Generating Links (2:07)Chapter 4: DatabaseIntroduction (0:15)Databases in Flask (0:58)Database Migrations (0:53)Flask-SQLAlchemy Configuration (6:15)Database Models (4:57)Creating the Migration Repository (1:41)The First Database Migration (2:10)Database Upgrade and Downgrade Workflow (1:20)Database Relationships (7:53)Play Time! (7:43)Shell Context (2:11)Chapter 5: User LoginsIntroduction (0:14)Password Hashing (4:46)Introduction to Flask-Login (1:15)Preparing the User Model for Flask-Login (1:02)User Loader Function (1:54)Logging Users In (8:28)Logging Users Out (2:43)Requiring Users to Login (5:16)Showing the Logged In User in Templates (1:22)User Registration (12:51)Chapter 6: Profile Page and AvatarsIntroduction (0:16)User Profile Page (6:13)Avatars (8:03)Using Jinja2 Sub-Templates (1:45)More Interesting Profiles (2:57)Recording The Last Visit Time For a User (2:54)Profile Editor (9:11)Chapter 7: Error HandlingIntroduction (0:12)Error Handling in Flask (2:49)Debug Mode (3:05)Custom Error Pages (6:59)Sending Errors by Email (8:00)Logging to a File (3:33)Fixing the Duplicate Username Bug (3:18)Chapter 8: FollowersIntroduction (0:12)Database Relationships Revisited (2:32)Representing Followers (0:57)Database Model Representation (6:24)Adding and Removing “follows” (6:06)Obtaining the Posts from Followed Users (5:16)Combining Own and Followed Posts (1:37)Unit Testing the User Model (4:16)Integrating Followers with the Application (7:08)Chapter 9: PaginationIntroduction (0:18)Submission of Blog Posts (5:54)Displaying Blog Posts (1:55)Making It Easier to Find Users to Follow (5:31)Pagination of Blog Posts (5:10)Page Navigation (4:35)Pagination in the User Profile Page (2:38)Chapter 10: Email SupportIntroduction (3:32)Introduction to Flask-Mail (3:07)Flask-Mail Usage (2:53)A Simple Email Framework (1:09)Requesting a Password Reset (2:13)Password Reset Tokens (7:53)Sending a Password Reset Email (3:18)Resetting a User Password (4:56)Asynchronous Emails (2:16)Chapter 11: FaceliftIntroduction (0:18)CSS Frameworks (1:01)Introducing Bootstrap (1:44)Using Flask-Bootstrap (3:08)Rendering Bootstrap Forms (1:13)Rendering of Blog Posts (0:32)Rendering Pagination Links (0:42)Before and After (1:39)Chapter 12: Dates and TimesIntroduction (0:17)Timezone Hell (2:15)Timezone Conversions (1:59)Introducing Moment.js and Flask-Moment (3:38)Using Moment.js (3:39)Chapter 13: I18n and L10nIntroduction (0:12)Introduction to Flask-Babel (5:44)Marking Texts to Translate in Python Source Code (3:39)Marking Texts to Translate in Templates (2:18)Extracting Text to Translate (3:00)Generating a Language Catalog (5:24)Updating the Translations (1:34)Translating Dates and Times (2:32)Command-Line Enhancements (3:25)Chapter 14: AjaxIntroduction (0:26)Server-side vs. Client-side (1:57)Live Translation Workflow (2:10)Language Identification (5:50)Displaying a “Translate” Link (1:42)Using a Third-Party Translation Service (10:17)Ajax From The Server (2:39)Ajax From The Client (11:20)Chapter 15: A Better Application StructureIntroduction (0:23)Current Limitations (1:29)Blueprints (6:15)The Application Factory Pattern (7:03)Unit Testing Improvements (3:35)Environment Variables (2:41)Requirements File (1:47)Chapter 16: Full-Text SearchIntroduction (0:12)Introduction to Full-Text Search Engines (1:38)Installing Elasticsearch (2:22)Elasticsearch Tutorial (6:50)Elasticsearch Configuration (3:09)A Full-Text Search Abstraction (9:31)Integrating Searches with SQLAlchemy (7:53)Search Form (7:01)Search View Function (3:07)Chapter 17: Deployment on LinuxIntroduction (0:22)Traditional Hosting (1:03)Creating a Ubuntu Server (1:52)Using a SSH Client (1:44)Password-less Logins (6:07)Securing Your Server (4:25)Installing Base Dependencies (3:31)Installing the Application (4:54)Setting Up MySQL (2:48)Setting Up Gunicorn and Supervisor (4:25)Setting Up Nginx (7:19)Deploying Application Updates (1:19)Raspberry Pi Hosting (1:16)Chapter 18: Deployment on HerokuIntroduction (0:12)Hosting on Heroku (0:32)Creating a Heroku Account (0:14)Installing the Heroku CLI (1:37)Setting Up Git (0:58)Creating a Heroku Application (1:41)The Ephemeral File System (1:11)Working With a Heroku Postgres Database (1:12)Logging to stdout (2:35)Compiled Translations (0:44)Elasticsearch Hosting (0:56)Updates to Requirements (0:55)The Procfile (2:26)Deploying the Application (2:38)Deploying Application Upgrades (0:25)Chapter 19: Deployment on Docker ContainersIntroduction (0:25)Installing Docker CE (0:45)Building a Container Image (9:24)Starting a Container (4:47)Using Third-Party “Containerized” Services (9:33)The Docker Container Registry (2:38)Deployment of Containerized Applications (0:49)Chapter 20: Some JavaScript MagicIntroduction (0:25)Server-side Support (2:16)Introduction to the Bootstrap Popover Component (2:35)Executing a Function on Page Load (2:00)Finding DOM Elements with Selectors (1:51)Popovers and the DOM (5:29)Hover Events (3:48)Ajax Requests (3:41)Popover Creation and Destruction (3:04)Chapter 21: User NotificationsIntroduction (0:21)Private Messages (9:22)Static Message Notification Badge (0:46)Dynamic Message Notification Badge (3:48)Delivering Notifications to Clients (10:29)Chapter 22: Background JobsIntroduction (0:14)Introduction to Task Queues (1:37)Using RQ (8:19)Database Representation of Tasks (3:05)Integrating RQ with the Flask Application (4:02)Sending Emails from the RQ Task (2:16)Task Helpers (3:29)Implementing the Export Task (5:26)Export Functionality in the Application (2:30)Progress Notifications (7:45)Deployment Considerations (6:57)Chapter 23: Application Programming Interfaces (APIs)Introduction (0:23)REST as a Foundation of API Design (4:34)Implementing an API Blueprint (2:18)Representing Users as JSON Objects (4:19)Representing Collections of Users (3:58)Error Handling (4:04)User Resource Endpoints (10:58)API Authentication (18:15)API Friendly Error Messages (3:02)Get The New and Improved Flask Mega-Tutorial – Miguel Grinberg, Only Price $17Tag: The New and Improved Flask Mega-Tutorial – Miguel Grinberg Review. The New and Improved Flask Mega-Tutorial – Miguel Grinberg download. The New and Improved Flask Mega-Tutorial – Miguel Grinberg discount.