Miguel Grinberg – The New and Improved Flask Mega – Tutorial

2,822.00

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.Purchase Miguel Grinberg – The New and Improved Flask Mega – Tutorial courses at here with PRICE $39 $17Miguel Grinberg – The New and Improved Flask Mega – TutorialThe 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 Kicker 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.Your InstructorMiguel GrinbergMiguel GrinbergMiguel Grinberg has over 25 years of experience as a software engineer in a variety of areas such as web development, microservices, cloud, computer animation and video broadcasting. He blogs at https://blog.miguelgrinberg.com about a variety of topics including web development, Python, robotics, photography and the occasional movie review. Miguel lives in beautiful Portland, Oregon.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 FormsGet Miguel Grinberg – The New and Improved Flask Mega – Tutorial downloadIntroduction (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)ing 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)Frequently Asked QuestionsWhen does the course and finish?The course s now and never ends! It is a completely self-paced online course – you decide when you and when you finish.How long do I have access to the course?How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like – across any and all devices you own.What if I am unhappy with the course?We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.Readmore: http://archive.is/HUQMdPurchase Miguel Grinberg – The New and Improved Flask Mega – Tutorial courses at here with PRICE $39 $17