What you will learn in The Well-Grounded Python Developer: How the pros use Python and Flask
How the pros use Python and Flask
Chapter by chapter
Concepts explained in this book
- namespaceA named container that organizes identifiers and their bindings to prevent naming conflicts and control name resolution.
- one-to-many relationshipA many-to-one relationship is a data relationship in which multiple entities can be associated with one entity.
- inheritanceInheritance is an object-oriented programming mechanism in which a class derives attributes and behavior from another class.
- many-to-many relationshipA many-to-many relationship is a data relationship in which multiple instances of one entity can be associated with multiple instances of another entity.
- unique identifierA unique identifier is a value intended to distinguish one entity or record from all others within a specified context.
- clientA client is software or a device that sends requests to a server and receives its responses.
- JinjaJinja2 is a Python template engine that renders text, including web pages, from templates containing static and dynamically generated content.
- FlaskFlask is a lightweight web application framework for Python that handles HTTP requests and connects URL resources to application code.
- request messageAn HTTP POST request is an HTTP request that submits data to a server for processing or resource creation.
- contractAn application programming interface is a defined set of operations and rules through which software components communicate and access functionality.
- render_templaterender_template is a Flask function that renders a named template with supplied context data and returns the resulting response content.
- exceptionAn exception is a runtime event representing an error or other abnormal condition that interrupts normal program execution.
- authenticationAn authentication system is software that verifies user or system identities during access to an application or service.
- cross-site scripting attackCross-site scripting is a web security attack in which injected script content executes in another user's browser.
- universally unique identifierA universally unique identifier (UUID) is a standardized 128-bit identifier conventionally represented as a hexadecimal string and intended to be globally unique.
- polymorphismPolymorphism is an object-oriented technique in which the same method call can produce different behavior depending on the object's class or runtime type.
- SQLAlchemySQLAlchemy is a Python SQL toolkit and object-relational mapping library for working with relational databases.
- cookieA cookie is client-side data exchanged with a web server on subsequent requests to retain information or identify a client.
- serverServer software is software that provides network-accessible functionality and enables a computer to act as a server.
- Flask blueprintA Flask Blueprint is a modular component that groups related routes, view functions, templates, static resources, and other application elements for registration with a Flask application.
- type signatureA function signature is the part of a function definition that specifies its callable name and parameters.
- foreign keyA foreign key is a column or set of columns that references a primary key in another relational database table to establish a relationship.
- parameterA query string is the portion of a URL containing parameters appended after a question mark.
- Jinja macroA Jinja macro is a reusable template definition that accepts arguments and emits rendered text.
- SQLiteSQLite is an embedded relational database engine that stores a complete database in a local file.
- decoratorA Python decorator is a callable construct that extends or modifies a function or method without changing its source definition.
- property decoratorA Python property decorator defines attribute-like access backed by methods that can compute, validate, or otherwise control attribute values.
- static fieldA class variable is an attribute stored on a Python class and shared by its instances unless shadowed.
- template blockA template block is a named region in a Jinja2 template that can be defined by a parent and filled or overridden by a child.
- template inheritanceTemplate inheritance is a templating pattern in which a child template extends a parent template and overrides or fills named sections.
- url_forurl_for is a Flask function that constructs a URL from an endpoint and optional parameter values or file paths.
- commentA comment is a user-authored response associated with a blog post, other content, or another comment in a threaded discussion.
- Flask-LoginFlask-Login is a Flask extension that manages user sessions and integrates authentication with protected views.
- password authenticationA password is a secret character sequence used to authenticate an account or system identity.
- default valueA default value is a value automatically assigned to a function parameter when the caller does not provide that parameter.
- primary keyA primary key is a column or set of columns that uniquely identifies each record in a relational database table.
- __init__.pyAn __init__.py file is a Python package file that marks a directory as a package and may contain package initialization code.
- packageA Python package is an importable directory that organizes related Python modules and subpackages.
- Flask-BcryptFlask-Bcrypt is a Flask extension that provides bcrypt password hashing and verification.
- user modelA user model is a database-backed application model representing an account and its authentication-related attributes.
- logging moduleThe logging module is Python's standard-library module for creating, filtering, formatting, and routing diagnostic log records.
- web formAn HTML form is a web-page interface containing controls for collecting user input and submitting it to a server.
- order itemAn order item is an entity or association that connects an order with a product and can record the quantity of that product.
- Flask application instanceA Flask application instance is the runtime Flask object that stores application configuration and routes and runs the web server.
- templateA template is a document containing fixed content and placeholders or directives that are resolved to produce a rendered document.
- bcryptbcrypt is a computationally expensive password-hashing algorithm designed to resist brute-force guessing.
- cryptographic hashA cryptographic hash is a one-way transformation that maps data to a fixed-format digest designed to make recovery of the original data computationally difficult.
- LoginManagerLoginManager is the Flask-Login manager object that coordinates loading users and maintaining authenticated sessions.
- session managementSession management is the handling of state that associates successive requests with a user or client interaction.
- UserMixinUserMixin is a Flask-Login mixin class that supplies standard methods and properties expected of a login-managed user object.
- keyword parameterA keyword parameter is a function parameter whose value is supplied by naming the parameter and which may have a default value.
- positional parameterA positional parameter is a function parameter whose value is assigned according to its position among the supplied arguments.
- HTMLA web page is a browser-rendered presentation of web content, commonly structured by an HTML document.
- PythonPython 3 is the third major version line of the Python programming language.
- postA blog post is a titled item of authored content published as part of a blog.
- CSVCSV (comma-separated values) is a delimited plain-text format for tabular data in which records are lines and fields are conventionally separated by commas.
- delimiterA delimiter is a character or sequence that separates adjacent data elements within a structured text representation.
- BootstrapBootstrap is an open-source front-end framework that provides CSS styles, layout utilities, and interface components for responsive web pages.
- variable namingMeaningful naming is the practice of choosing identifiers whose words communicate the represented value, purpose, or operation.
- conventionA naming convention is a shared pattern for constructing identifiers consistently so their form communicates information.
- relational database management systemA relational database management system is software that stores and manages data in related tables and provides operations for defining and querying that data.
- exception handlerAn exception handler is a program construct that responds to an exception and determines whether execution can continue or the exception should propagate.
- stack traceA stack trace is a chronological report of the call path and source locations associated with an exception or other execution event.
- SQLSQL is a language for defining, querying, updating, and otherwise interacting with data in relational database management systems.
- attributeAn attribute is a named value associated with a Python object or class and accessible through attribute lookup.
- shadowingShadowing is the concealment of an existing name binding by another binding with the same name in a nearer or overriding namespace.
- class hierarchyA class hierarchy is an inheritance-oriented arrangement of classes in which related classes are organized into parent and child relationships.
- functionA function is a named or callable program unit that performs an operation and can return a result.
- validationValidation is the process of checking input data against required presence, format, and value constraints.
- join tableAn association table is a relational table that records associations between entities from two other tables, typically through foreign keys.
- recordA database record is a stored row representing one set of related field values in a database table.
- routingA URL route is a web-framework mapping from a URL pattern or path to application code that handles requests for it.
- performanceA performance metric is a quantitative measure used to evaluate an application's speed or resource efficiency.
- abstract classAn abstract class is a class intended to define shared structure or behavior without being instantiated directly.
- abstract methodAn abstract method is a method declaration that specifies an operation for subclasses without providing its implementation.
- don't repeat yourself principleThe DRY principle is the software design principle of avoiding duplicated knowledge or logic in a codebase.
- subclassA child class is a class that inherits attributes or behavior from a parent class.
- super keywordsuper is a Python mechanism that provides access to methods and other attributes defined in a class's parent according to the method resolution order.
- superclassA parent class is a class whose attributes and behavior are inherited by another class.
- classA class is a Python construct that defines the structure and behavior of objects and provides a namespace for their attributes and methods.
- Flask-WTFFlask-WTF is a Flask extension that integrates Flask applications with WTForms for form construction and validation.
- application factoryAn application factory is a callable that creates and configures an application instance when invoked.
- side effectA side effect is an observable change or external action caused by a function in addition to producing its return value.
- optimizationOptimization is the deliberate modification of software to improve a measured performance characteristic.
- return valueA function return value is the object supplied by a function to the caller when the function completes.
- CSSCSS is a stylesheet language used to describe the presentation and layout of documents rendered by web clients.
- scopeScope is the region of a program in which a name or variable is accessible and has a particular binding.
- WTFormsWTForms is a Python library for defining, rendering, and validating web forms.
- authorization decisionAuthorization is the process of determining which actions or resources an authenticated user or system is permitted to access.
- **kwargsA variadic keyword parameter is a function parameter that collects an arbitrary number of keyword arguments into a mapping.
- variadic argumentsA variadic positional parameter is a function parameter that collects an arbitrary number of positional arguments.
- exception propagationException propagation is the movement of an unhandled exception upward through the call stack until a suitable handling context is reached.
- confirmation linkA confirmation link is a URL that carries account-verification information and can be opened by a user to confirm registration.
- validation emailA confirmation email is an electronic message containing information or a link for verifying a user's intended action.
- flask runflask run is the Flask command-line command that locates an application and starts its development server.
- PostPost is the book's SQLAlchemy model representing a blog post, its persisted attributes, and related comments.
- maintainabilityMaintainability is the degree to which software can be understood, modified, corrected, and extended efficiently.
- 90/10 ruleThe 90/10 rule of code optimization is the heuristic that roughly 90 percent of execution time is spent in roughly 10 percent of the code.
- moduleA Python module organized for reuse by applications or other code.
- logging levelA logging level is a classification that indicates the severity or importance of a log message.
- refactoringRefactoring is restructuring existing code to improve its design or maintainability while preserving its intended behavior.
- joinA join operation combines rows from related database tables according to a matching relationship between them.
- uriA URL is an address that identifies a resource or logical location accessible through a network protocol.
- event loopAn event loop is a control structure that waits for events and repeatedly dispatches them for processing.
- HTTP response codeAn HTTP status code is a numeric response code indicating the outcome of an HTTP request.
- loopback addressLocalhost is the hostname convention that identifies the local computer in network communications.
- dynamic contentDynamic content is information generated or retrieved at request time rather than being identical for every access.
- templating languageA template language is a language for combining a document template with data to produce a completed output document.
- HTTPHTTP is the application-layer protocol that defines how clients and web servers exchange requests and responses.
- Bootstrap CSS classA Bootstrap CSS class is a predefined CSS class name that applies Bootstrap styling or layout behavior to an HTML element.
- media queryA media query is a CSS condition that applies styles according to properties of the user agent or viewport, such as screen width or resolution.
- common table expressionA common table expression is a named temporary result set defined within a SQL statement and usable by that statement's subsequent query clauses.
- recursionRecursion is a technique in which an operation is repeatedly applied to progressively nested or related instances of the same kind of structure.
- roleAn authorization role is a named grouping of permissions that determines which actions a user may perform.
- directory structureA directory is a filesystem container that organizes files and other directories under a name.
- object-oriented programmingObject-oriented programming is a programming paradigm that organizes software around objects containing state and behavior.
- function argumentAn argument is a value supplied to a function or method when it is called.
- exception silencingException silencing is suppressing an exception without reporting it or exposing information about its cause.
- methodA method is a function associated with an object or class and invoked in the context of that object or class.
- circular referenceA circular reference problem is a dependency structure in which modules directly or indirectly require each other in a cycle that prevents valid importing or initialization.
- self-referential hierarchySelf-referential hierarchical data is data whose records reference other records in the same dataset to represent parent-child relationships.
- configurationConfiguration data is information that determines how an application and its services are set up and run.
- columnA named field in a relational database table whose cells contain values of a defined or compatible type.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
