A Social Network with Flask Course

Go to class
Write Review

Free Online Course: A Social Network with Flask Course provided by Treehouse is a comprehensive online course, which lasts for 4-5 hours worth of material. The course is taught in English and is free of charge.

Overview
  • It's time to dig in and build something big. In this course, we're going to take the tools we've learned, Flask, Peewee, and Python itself, and build a small social network. We'll have user registration, user authentication, strongly hashed passwords, form validation, and more.

    What you'll learn

    • User registration and authentication
    • Password hashing
    • Form validation
    • Joins

Syllabus
  • Making Strong Users

    We won't get far in our social application with out users. Let's make sure their passwords are stored correctly and strongly, too.

    Chevron 10 steps
    • Our Project

      1:38

    • Flask and Peewee Review

      6 questions

    • The User Model

      4:57

    • Create a User model

      3 objectives

    • The UserMixin From Flask-Login

      5:50

    • Add UserMixin

      2 objectives

    • Cryptographic Hashing with Flask-Bcrypt

      6:50

    • Bcryptkeeper

      3 objectives

    • Class Method

      4:07

    • What's a method like you doing in a class like this?

      2 objectives

    Takin' Names

    Users need a way to sign up and sign in to our site. We'll need to validate their information, create our model instances, and store their session information. Luckily, we have a few handy libraries to do a lot of that for us!

    Chevron 12 steps
    • Before and After Requests

      4:27

    • To the ends of the request

      3 objectives

    • LoginManager

      4:38

    • Set up LoginManager

      4 objectives

    • Flask-WTF Forms

      9:39

    • Form with Validators

      4 objectives

    • Registration View

      6:33

    • Macros

      4:19

    • Login View

      6:17

    • Form View

      3 objectives

    • Logout View

      3:24

    • Controlling sessions

      2 objectives

    Broadcasting

    Our app needs messages posted by the users. Let's give them a model, a form, and the views necessary so they can tell the world what they're up to.

    Chevron 10 steps
    • Add Some Layout

      7:01

    • Add current_user Check

      2 objectives

    • Post Model

      4:05

    • Lunch Order Model

      3 objectives

    • Post Form and View

      7:14

    • Lunch Order Form

      3 objectives

    • Stream Views

      7:21

    • Lunch order view

      1 objective

    • Stream Templates

      6:27

    • Lunch Template

      2 objectives

    How to Win Friends

    The final ingredient in any social site is the ability to follow people. We'll need to add a new model, a couple of views, and tweak a template or two. We'll also want to change a query or two to get the full social experience.

    Chevron 10 steps
    • Relationship Model

      5:36

    • Related Users

      4 objectives

    • Follow and Unfollow Buttons

      8:06

    • Follow/Unfollow views

      2 objectives

    • Show Follower Posts

      4:21

    • Lunch Count

      1 objective

    • Handling 404s

      5:40

    • Uh-Oh 404!

      3 objectives

    • Suggestions

      0:43

    • Review: Build a Social Network with Flask

      6 questions

    • Extra Credit

      Some other ideas for extending this app are:

      • Add a form and view to allow users to change their username, email address, and password.
      • Allow users to repost or respond to updates in a linked method. You'd probably want to start by adding a foreign key to Post that pointed to another Post.