43 Commits (814cbfc9963413822b47a7ffb5f90b9b6e2d6daf)
 

Author SHA1 Message Date
  T. Meissner 814cbfc996 Chapter 12: Show followed blog posts in home page (12d) 6 years ago
  T. Meissner 02e1980122 Chapter 12: Followed posts with a join (12c) 6 years ago
  T. Meissner f35793218a Chapter 12: Followers in the application (12b) 6 years ago
  T. Meissner 63f1022c36 Chapter 12: Database representaton of followers (12a) 6 years ago
  T. Meissner a482fe670c Chapter 11: Blog post editor (11h) 6 years ago
  T. Meissner 0dff7d0fb8 Chapter 11: Permanent links to posts (11g) 6 years ago
  T. Meissner 44b9042b9f Chapter 11: Rich text server side handling with Markdown and Bleach (11f) 6 years ago
  T. Meissner f7110f653e Chapter 11: Rich text blog posts with Flask-PageDown (11e) 6 years ago
  T. Meissner 6c8890d350 Chapter 11: Blog post pagination (11d) 6 years ago
  T. Meissner 3c68168f40 Chapter 11: Generate fake users and posts (11c) 6 years ago
  T. Meissner c5b02361ca Chapter 11: Blog posts in profile pages (11b) 6 years ago
  T. Meissner 9f056eb85b Chapter 11: Blog posts (11a) 6 years ago
  T. Meissner f9055706ca Chapter 10: Caching of user avatar hashes (10d) 6 years ago
  T. Meissner b2cbdefb7e Chapter 10: User avatars (10c) 6 years ago
  T. Meissner c4274e3b74 Chapter 10: Profiles editor (10b) 6 years ago
  T. Meissner a7311a9c23 Chapter 10: User profiles (10a) 6 years ago
  T. Meissner e61ae9a2c8 Chapter 9: User roles and permissions (9a) 6 years ago
  T. Meissner 492e1065f6 Chapter 8: Email address changes (8h) 6 years ago
  T. Meissner 3571a77933 Chapter 8: Password resets (8g) 6 years ago
  T. Meissner b718cc29e2 Chapter 8: Password updates (8f) 6 years ago
  T. Meissner 330e5fb933 Chapter 8: Account confirmation (8e) 6 years ago
  T. Meissner 869a8b0448 Chapter 8: User registration (8d) 6 years ago
  T. Meissner 115d1e1da1 Chapter 8: Login and logout with Flask-Login (8c) 6 years ago
  T. Meissner 927b4119ea Chapter 8: Authentication blueprint (8b) 6 years ago
  T. Meissner d16769aefa Chapter 8: Password hashing with Werkzeug (8a) 6 years ago
  T. Meissner e344f46b81 Chapter 7: Large file structure (7a) 6 years ago
  T. Meissner 88514c1e70 Chapter 6: Asynchronous emails (6b) 6 years ago
  T. Meissner 94e1dbe09b Chapter 6: Email support with Flask-Mail (6a) 6 years ago
  T. Meissner 7783c73cbd Chapter 5: Database migrations with Flask-Migrate (5d) 6 years ago
  T. Meissner da527b20be Chapter 5: Shell context (5c) 6 years ago
  T. Meissner 59c7e489a4 Chapter 5: Database use in the application (5b) 6 years ago
  T. Meissner be07b02c41 Chapter 5: Database models with Flask-SQLAlchemy (5a) 6 years ago
  T. Meissner c3385ab430 Chapter 4: Message flashing (4c) 6 years ago
  T. Meissner b79829c006 Chapter 4: Redirects and user sessions (4b) 6 years ago
  T. Meissner 1b2e37426b Chapter 4: Web forms with Flask-WTF (4a) 6 years ago
  T. Meissner 5ffd385c15 Chapter 3: Dates and times with Flask-Moment (3e) 6 years ago
  T. Meissner 04988648a1 Chapter 3: Static files (3d) 6 years ago
  T. Meissner 7bc8516d09 Chapter 3: Custom error pages (3c) 6 years ago
  T. Meissner 48b7c03532 Chapter 3: Templates with Flask-Bootstrap (3b) 6 years ago
  T. Meissner 02a1b3404e Chapter 3: Templates (3a) 6 years ago
  T. Meissner d44cd7029c Chapter 2: Dynamic routes (2b) 6 years ago
  T. Meissner 024f9b2844 Chapter 2: A complete application (2a) 6 years ago
  T. Meissner abf38e34e1 Initial commit 6 years ago