Index
A
- abstract models
- limitations / Solution details
- access controlled views
- about / Pattern – access controlled views
- problem details / Problem details
- solution details / Solution details
- active link
- issues / Problem details
- solution / Solution details
- template-only solution / A template-only solution
- admin
- about / Admin
- admin app
- models, enhancing for / Enhancing models for the admin
- admin interface
- using / Using the admin interface
- attributes / Enhancing models for the admin
- options / Enhancing models for the admin
- customizing / Admin interface customizations
- heading, changing / Changing the heading
- base, changing / Changing the base and stylesheets
- stylesheets, changing / Changing the base and stylesheets
- bootstrap themed admin / Bootstrap-themed admin
- complete overhauls / Complete overhauls
- protecting / Protecting the admin
- pattern, feature flags / Pattern – feature flags
- admin interfaces
- creating / Not everyone should be an admin
- app
- about / Dividing a project into Apps
- app, Django
- admin interface, using / Using the admin interface
- application design
- requisites, gathering / How to gather requirements
- HTML mockups, creating / HTML mockups
- about / Designing the application
- project, dividing into app / Dividing a project into Apps
- Application Programming Interface (API) / Solution details
- assert method / The assert method
- attribute
- about / M is bigger than V and C
- attributes / Attributes
B
- back-end performance
- about / Backend performance
- templates / Templates
- database / Database
- caching / Caching
- Base Patterns / Fowler's Patterns
- Behavioral Patterns / Gang of Four Patterns
- Berkeley Software Distribution (BSD) / A framework is born
- Bootstrap
- using / Using Bootstrap
- URL / Using Bootstrap
- Brown Bag Lunch
- about / M is bigger than V and C
C
- cached properties
- about / Cached properties
- caching
- about / Caching
- cached session backend / Cached session backend
- frameworks / Caching frameworks
- patterns / Caching patterns
- class
- about / M is bigger than V and C
- class-based generic views
- about / Class-based generic views
- class-based views
- about / Views got classier
- Class-based views
- used, for processing forms / Form processing with Class-based views
- class diagram
- about / The model hunt
- clickjacking
- about / Clickjacking
- Django, advantages / How Django helps
- code base
- Django version, finding / Finding the Django version
- virtual environment, activating / Activating the virtual environment
- files, finding / Where are the files? This is not PHP
- urls.py, starting with / Starting with urls.py
- jumping around / Jumping around the code
- about / Understanding the code base
- big picture, creating / Creating the big picture
- incremental change / Incremental change or a full rewrite?
- full rewrite / Incremental change or a full rewrite?
- tests, writing / Write tests before making any changes
- tests writing, process / Step-by-step process to writing tests
- Legacy databases / Legacy databases
- concept document, SuperBook project / Are you a story teller?
- content delivery network (CDN) / Frontend performance
- context enhancers
- about / Pattern – context enhancers
- problem details / Problem details
- solution details / Solution details
- cookies
- about / Why are your cookies valuable?
- Django, advantages / How Django helps
- Django, limitations / Where Django might not help
- Creational Patterns / Gang of Four Patterns
- Cross-site request forgery (CSRF) / Why Django?
- Cross-Site Request Forgery (CSRF)
- about / Cross-Site Request Forgery (CSRF)
- Django, advantages / How Django helps
- Django, limitations / Where Django might not help
- Cross-site scripting (XSS) / Why Django?
- cross-site scripting (XSS)
- about / Cross-site scripting (XSS)
- CRUD views
- issues / Problem details
- solution / Solution details
- CSRF
- about / Understanding CSRF
- custom model managers
- about / Pattern – custom model managers
- problem details / Problem details
- solution details / Solution details
D
- database column
- about / M is bigger than V and C
- database table
- about / M is bigger than V and C
- Data Source Architectural Patterns / Fowler's Patterns
- debuggers
- about / Other debuggers
- ipdb / Other debuggers
- pudb / Other debuggers
- iPython / Other debuggers
- decorators
- about / Decorators
- denormalization
- and performance / Performance and denormalization
- departmental store URLs / Departmental store URLs
- deployment, tools
- about / Deployment tools
- Fabric / Fabric
- typical deployment steps / Typical deployment steps
- configuration management / Configuration management
- monitoring / Monitoring
- design philosophies, Django
- design philosophies, Python Zen
- Distribution Patterns / Fowler's Patterns
- Django
- need for / Why Django?
- URL / Why Django?
- history / The story of Django, Removing the magic
- improvements / Django keeps getting better
- working / How does Django work?
- design philosophies / Python Zen and Django's design philosophy
- entry points / M is bigger than V and C
- debug page / Django debug page
- debug toolbar / The Django Debug Toolbar
- templates, debugging / Debugging Django templates
- URL, for official blog / And the list goes on
- django-braces package
- URL / Solution details
- django-vanilla-views / Class-based generic views
- DjangoCons / Django keeps getting better
- Django debug toolbar
- about / The Django Debug Toolbar
- Django models
- about / Django models
- Domain Logic Pattern / Fowler's Patterns
- Don't Repeat Yourself (DRY) / Python Zen and Django's design philosophy
- dynamic form generation
- issues / Pattern – dynamic form generation, Problem details
- solution / Solution details
E
- (Entity-relationship model) ER-model / The model hunt
- edge
- Exuberant Ctags / Jumping around the code
F
- F.I.R.S.T class
- test case / Writing better test cases
- Fabric
- about / Fabric
- deployment, steps / Typical deployment steps
- feature flag
- about / Solution details
- URL / Solution details
- trials / Solution details
- A/B testing / Solution details
- performance testing / Solution details
- limit externalities / Solution details
- filters / Filters
- first normal form (1NF) / First normal form (1NF)
- form patterns
- about / Form patterns
- dynamic form generation, issues / Pattern – dynamic form generation, Problem details
- dynamic form generation, solution / Solution details
- user-based forms, issues / Problem details
- user-based forms, solution / Solution details
- multiple actions per view, issues / Problem details
- multiple actions per view, solution / Solution details, Same view for separate actions
- CRUD views, issues / Pattern – CRUD views
- CRUD views, solution / Solution details
- forms
- about / How forms work
- empty / How forms work
- filled / How forms work
- submitted, with errors / How forms work
- submitted, without errors / How forms work
- in Django / Forms in Django
- is_bound / Forms in Django
- is_valid() / Forms in Django
- data, cleaning / Why does data need cleaning?
- displaying / Displaying forms, Time to be crisp
- processing, with Class-based views / Form processing with Class-based views
- Fowler's Patterns
- about / Fowler's Patterns
- Domain Logic Patterns / Fowler's Patterns
- Data Source Architectural Patterns / Fowler's Patterns
- Object-Relational Behavioral Patterns / Fowler's Patterns
- Object-Relational Structural Patterns / Fowler's Patterns
- Object-Relational Metadata Mapping Patterns / Fowler's Patterns
- Web Presentation Patterns / Fowler's Patterns
- Distribution Patterns / Fowler's Patterns
- Offline Concurrency Patterns / Fowler's Patterns
- Session State Patterns / Fowler's Patterns
- Base Patterns / Fowler's Patterns
- URL / Fowler's Patterns
- front-end performance / Frontend performance
G
- Gang of Four (GoF) Pattern / Gang of Four Patterns
- Grappelli
- about / Complete overhauls
H
- Hierarchical model-view-controller (HMVC)
- about / Are there more patterns?
- hosting
- Platform as a Service (PaaS) / Platform as a service
- virtual private server (VPS) / Virtual private servers
- approaches / Other hosting approaches
- HTML mockups
- creating / HTML mockups
L
- Law of Demeter / Solution details
- Legacy databases / Legacy databases
- Like / The model hunt
- logging module / Logging
M
- Method Resolution Order (MRO)
- about / Order of mixins
- URL / Order of mixins
- migrations
- about / Migrations
- mocking
- about / Mocking
- Model-Template-View (MTV)
- about / Is Django MVC?
- Model-View-Controller (MVC)
- about / Is Django MVC?
- Model-view-presenter (MVP)
- about / Are there more patterns?
- model mixins
- about / Pattern – model mixins, Model mixins
- problem details / Problem details
- solution details / Solution details
- models
- about / M is bigger than V and C
- identifying / The model hunt
- enhancing, for admin app / Enhancing models for the admin
- models.py
- splitting, into multiple files / Splitting models.py into multiple files
- Model View ViewModel (MVVM)
- about / Are there more patterns?
- modules, Python 3
- Asyncio / New goodies
- unittest.mock / New goodies
- pathlib / New goodies
- statistics / New goodies
- multiple actions per view
- issues / Problem details
- solution / Separate views for separate actions, Same view for separate actions
- multiple files
- models.py, splitting into / Splitting models.py into multiple files
- multiple profile types
- about / Multiple profile types
- multiple QuerySets
- chaining / Chaining multiple QuerySets
- My app sandbox / My app sandbox
N
- normalization
- about / Three steps of normalization
- first normal form (1NF) / First normal form (1NF)
- second normal form (2NF) / Second normal form or 2NF
- third normal form (3NF) / Third normal form or 3NF
- normalized models
- about / Patterns – normalized models
- problem details / Problem details
- solution details / Solution details
O
- (object-relational mapping) ORM / Performance and denormalization
- Object-Relational Behavioral Patterns / Fowler's Patterns
- Object-Relational Metadata Mapping Patterns / Fowler's Patterns
- Object-Relational Structural Patterns / Fowler's Patterns
- Offline Concurrency Patterns / Fowler's Patterns
- online regular expression generator
- reference link / Mnemonic – parents question pink action-figures
P
- Pattern
- about / What is a Pattern?
- Gang of Four (GoF) / Gang of Four Patterns
- Creational Patterns / Gang of Four Patterns
- Structural Patterns / Gang of Four Patterns
- Behavioral Patterns / Gang of Four Patterns
- criticism / Criticism of Patterns
- using / How to use Patterns
- best practices / Best practices
- pattern, feature flags
- problem details / Problem details
- solution details / Solution details
- Pattern-Oriented Software Architecture (POSA)
- about / Are there more patterns?
- pattern vocabulary
- about / Patterns in this book
- performance
- and denormalization / Performance and denormalization
- about / Performance
- front-end performance / Frontend performance
- back-end performance / Backend performance
- pip
- about / Using Pyvenv and Pip
- Platform as a service (PaaS) / Platform as a service
- Pony Checkup
- Post/Redirect/Get (PRG) pattern / Form processing with Class-based views
- print function
- about / The print function
- production
- environment / Production environment
- projects
- about / Dividing a project into Apps
- property field
- about / Pattern – property field
- problem details / Problem details
- solution details / Solution details
- PyPi (Python Package Index)
- about / Why Django?
- Python
- about / Why Django?
- references / Further information
- Python 2.7
- about / But I still use Python 2.7!
- Python 3
- about / Python 3
- for Djangonauts / Python 3 for Djangonauts
- __str__() method / Change all the __unicode__ methods into __str__
- classes, inheriting from object class / All classes inherit from the object class
- simpler call, to super() / Calling super() is easier
- relative imports, must be explicit / Relative imports must be explicit
- HttpRequest object, enhancements / HttpRequest and HttpResponse have str and bytes types
- HttpResponse object, enhancements / HttpRequest and HttpResponse have str and bytes types
- exception handling, improvements / Exception syntax changes and improvements
- standard library, improvements / Standard library reorganized
- modules / New goodies
- modifications / Other changes
- Python Debugger pdb
- about / The Python debugger pdb
- Python Zen
- design philosophies / Python Zen and Django's design philosophy
- Pyvenv
- about / Using Pyvenv and Pip
Q
- QuerySets / Solution details
R
- Rails / Why Django?
- representation
- creating, tips / The model hunt
- Representational state transfer (REST) / RESTful URLs
- RESTful URLs / RESTful URLs
- retrieval patterns
- about / Retrieval patterns
- property field / Pattern – property field
- custom model managers / Pattern – custom model managers
- Rich Text Editor
- adding, for WYSIWYG editing / Adding a Rich Text Editor for WYSIWYG editing
S
- second normal form (2NF)
- about / Second normal form or 2NF
- security checklist
- about / A handy security checklist
- service
- principles / Solution details
- service-oriented architecture (SOA) / Solution details
- service objects
- about / Pattern – service objects
- problem details / Problem details
- solution details / Solution details
- services
- about / Pattern – services
- problem details / Problem details
- solution details / Solution details
- session hijacking / Why are your cookies valuable?
- Session State Patterns / Fowler's Patterns
- shell injection
- about / Shell injection
- Django, advantages / How Django helps
- signals
- about / Signals
- single point of failure (SPOF) / Production environment
- solution details, custom model managers
- about / Solution details
- set operations, on Queryperat / Set operations on QuerySets
- multiple QuerySets, chaining / Chaining multiple QuerySets
- solution details, normalized models
- about / Solution details
- normalization / Three steps of normalization
- solution details, property field
- cached properties / Cached properties
- solution details, user profiles
- about / Solution details
- signals / Signals
- admin / Admin
- multiple profile types / Multiple profile types
- SQL injection
- about / SQL injection
- Django, advantages / How Django helps
- Django, limitations / Where Django might not help
- Structural Patterns / Gang of Four Patterns
- structural patterns
- about / Structural patterns
- normalized models / Patterns – normalized models
- model mixins / Pattern – model mixins
- user profiles / Pattern – user profiles
- service objects / Pattern – service objects
- SuperBook model design
- about / M is bigger than V and C
- SuperBook project
- concept document / Are you a story teller?
- reasons, for avoiding packages / Reuse or roll-your-own?
- third-party app, recommending / Reuse or roll-your-own?
- packages, using / Which packages made it?
- requisites / Before starting the project
- about / SuperBook – your mission, should you choose to accept it
- reasons, for using Python 3 / Why Python 3?
- starting / Starting the project
- SuperHero Intelligence and Monitoring (S.H.I.M.)
- about / M is bigger than V and C
- Syntactically awesome stylesheets (Sass) / Frontend performance
T
- tags / Tags
- template language
- support for / Support for other template languages
- template language, features
- about / Understanding Django's template language features
- variables / Variables
- attributes / Attributes
- filters / Filters
- tags / Tags
- templates
- organizing / Organizing templates
- patterns / Template patterns
- inheritance tree / Pattern – template inheritance tree
- inheritance tree, issues / Problem details
- inheritance tree, solution / Solution details
- active link, issues / Pattern – the active link
- active link, solution / Solution details, Custom tags
- debugging / Debugging Django templates
- Test-driven Design (TDD) / Designing the application
- Test-driven development (TDD)
- about / Test-driven development
- test case, writing
- assert method / The assert method
- better / Writing better test cases
- test fixtures
- issues / Problem details
- solution / Solution details
- tests
- writing / Why write tests?
- case, writing / Writing a test case
- fixtures / Pattern – test fixtures and factories
- about / Learning more about testing
- debugging / Debugging
- Django debug page / Django debug page
- Django debug page, improved / A better debug page
- third normal form (3NF)
- about / Third normal form or 3NF
- twoscoops
U
- Uniform Resource Identifiers (URIs)
- about / URL anatomy
- reference link, for example / URL anatomy
- URL
- designing / Designing URLs
- anatomy / URL anatomy
- URL pattern
- names / Names and namespaces
- namespaces / Names and namespaces
- order / Pattern order
- URL pattern styles
- about / URL pattern styles
- departmental store URLs / Departmental store URLs
- RESTful URLs / RESTful URLs
- URL pattern syntax
- about / The URL pattern syntax
- urls.py
- about / What happens in urls.py?
- user-based forms
- issues / Problem details
- solution / Solution details
- user profiles
- about / Pattern – user profiles
- problem details / Problem details
- solution details / Solution details
V
- view
- about / A view from the top
- class-based views / Views got classier
- view mixins
- about / View mixins
- order of mixins / Order of mixins
- view patterns
- about / View patterns
- access controlled views / Pattern – access controlled views
- services / Pattern – services
- Virtual private servers (VPS) / Virtual private servers
W
- Web Presentation Patterns / Fowler's Patterns
- web stack
- selecting / Choosing a web stack
- components / Components of a stack
- WYSIWYG editing
- Rich Text Editor, adding for / Adding a Rich Text Editor for WYSIWYG editing