Mastering Flask Web and API Development Build and Deploy Production-Ready Flask Apps Seamlessly Across Web, APIs, and Mobile Platforms

Chapter 4: Utilizing Flask Extensions -- Technical requirements -- Applying database migration with Flask-Migrate -- Installing Flask-Migrate and Flask-SQLAlchemy -- Setting up the Alembic configuration -- Creating the migrations -- Applying the database changes -- Designing the UI using Bootstrap-F...

Descripción completa

Detalles Bibliográficos
Otros Autores: Tragura, Sherwin John C., author (author)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England : Packt Publishing [2024]
Edición:First edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009843323806719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Dedication
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: Learning the Flask 3.x Framework
  • Chapter 1: A Deep Dive into the Flask Framework
  • Technical requirements
  • Setting up the project baseline
  • Installing the latest Python version
  • Installing the Visual Studio (VS) Code editor
  • Creating the virtual environment
  • Installing the Flask 3.x libraries
  • Creating the Flask project
  • Creating routes and navigations
  • Creating static URLs
  • Assigning multiple URLs
  • Applying path variables
  • Assigning URLs externally
  • Implementing class-based views
  • Managing request and response data
  • Retrieving the request object
  • Creating the response object
  • Implementing page redirection
  • Implementing view templates
  • Creating web forms
  • Building the data layer with PostgreSQL
  • Setting up database connectivity
  • Implementing the repository layer
  • Creating the service layer
  • Managing the project structure
  • Building the directory structure
  • Setting up a development environment
  • Implementing the main.py module
  • Creating environment variables
  • Summary
  • Chapter 2: Adding Advanced Core Features
  • Technical requirements
  • Structuring huge and scalable projects
  • Using the application factory
  • Using the Blueprint
  • Utilizing both the application factory and the Blueprint
  • Applying object-relational mapping (ORM)
  • Setting up the database connectivity
  • Building the model layer
  • Implementing the repository layer
  • Configuring the logging mechanism
  • Creating user sessions
  • Managing session data
  • Clearing all session data
  • Applying flash messages
  • Utilizing some advanced Jinja2 features
  • Applying with-blocks and macros
  • Applying filters
  • Adding comments
  • Implementing error-handling solutions.
  • Using the register_error_handler method
  • Applying the @errorhandler decorator
  • Creating custom exceptions
  • Managing built-in exceptions
  • Triggering the error handlers
  • Adding static resources
  • Accessing the assets in the templates
  • Summary
  • Chapter 3: Creating REST Web Services
  • Technical requirements
  • Setting up a RESTful application
  • Implementing API endpoints
  • Managing requests and responses
  • Utilizing response encoders and decoders
  • Filtering API requests and responses
  • Handling exceptions
  • Consuming API endpoints
  • Summary
  • Chapter 4: Utilizing Flask Extensions
  • Technical requirements
  • Applying database migration with Flask-Migrate
  • Installing Flask-Migrate and Flask-SQLAlchemy
  • Setting up the Alembic configuration
  • Creating the migrations
  • Applying the database changes
  • Designing the UI using Bootstrap-Flask
  • Setting up the UI module
  • Applying the Bootstrap files and assets
  • Utilizing built-in features
  • Building Flask forms with Flask-WTF
  • Creating the form models
  • Rendering the forms
  • Applying CSRF
  • Submitting the form
  • Validating form fields
  • Building RESTful services with Flask-RESTful
  • Implementing session handling with Flask-Session
  • Applying caching using Flask-Caching
  • Adding mail features using Flask-Mail
  • Summary
  • Part 2: Building Advanced Flask 3.x Applications
  • Chapter 5: Building Asynchronous Transactions
  • Technical requirements
  • Creating asynchronous Flask components
  • Implementing asynchronous views and endpoints
  • Implementing the async before_request and after_request handlers
  • Creating asynchronous error handlers
  • Building an asynchronous SQLAlchemy repository layer
  • Setting up the DB connectivity
  • Building the asynchronous repository layer
  • Utilizing the asynchronous DB transactions
  • Implementing async transactions with asyncio.
  • Utilizing asynchronous signal notifications
  • Constructing background tasks with Celery and Redis
  • Setting up the Celery task queue
  • Installing the Redis DB
  • Setting up the Celery client configuration
  • Creating the Client instance
  • Implementing the Celery tasks
  • Running the Celery worker server
  • Utilizing the Celery tasks
  • Building WebSockets with asynchronous transactions
  • Creating the client-side application
  • Creating server-side transactions
  • Creating a Flask API client application
  • Implementing asynchronous SSE
  • Implementing the message publisher
  • Building the server push
  • Applying reactive programming with RxPy
  • Choosing Quart over Flask 2.x
  • Summary
  • Chapter 6: Developing Computational and Scientific Applications
  • Technical requirements
  • Uploading CSV and XLSX documents for computing
  • Using the pandas module for data and graphical analysis
  • Utilizing the DataFrame
  • Rendering graphs and charts using matplotlib
  • Rendering multiple line graphs
  • Rendering a pie chart from a CSV file
  • Rendering multiple Axes plots
  • Implementing symbolic computation with visualization
  • Solving linear equations
  • Solving non-linear formulas
  • Finding solutions for a linear system
  • Plotting mathematical expressions
  • Creating and rendering LaTeX documents
  • Rendering LaTeX documents
  • Creating LaTeX documents
  • Building graphical charts with frontend libraries
  • Plotting with Chart.js
  • Creating graphs with Plotly
  • Visualizing data using Bokeh
  • Building real-time data plots using WebSocket and SSE
  • Utilizing the WebSocket
  • Using SSE
  • Using asynchronous background tasks for resource-intensive computations
  • Incorporating Julia packages with Flask
  • Creating a custom Julia package
  • Configuring Julia accessibility in a Flask project
  • Implementing Julia functions in the package.
  • Creating the Julia service module
  • Summary
  • Chapter 7: Using Non-Relational Data Storage
  • Technical requirements
  • Managing non-relational data using Apache HBase
  • Designing HBase tables
  • Setting up the baseline requirements
  • Configuring Apache Hadoop
  • Configuring Zookeeper and Apache HBase
  • Setting up the HBase shell
  • Creating the HBase tables
  • Establishing an HBase connection
  • Building the repository layer
  • Applying a repository to API functions
  • Running the thrift server
  • Utilizing the column storage of Apache Cassandra
  • Designing Cassandra tables
  • Installing and configuring Apache Cassandra
  • Running the CQL shell client
  • Establishing a database connection
  • Building the model layer
  • Implementing the repository layer
  • Storing search data in Redis
  • Installing the Redis server
  • Understanding the Redis database
  • Establishing a database connection
  • Implementing the model layer
  • Building the repository layer
  • Handling BSON-based documents with MongoDB
  • Installing and configuring the MongoDB server
  • Establishing a database connection
  • Building the model layer
  • Implementing the repository
  • Managing key-based JSON documents with Couchbase
  • Installing and configuring the database instance
  • Setting up the server connection
  • Creating the repository layer
  • Establishing a data relationship with Neo4J
  • Installing Neo4J Desktop
  • Establishing a connection to the database
  • Implementing the repository
  • Summary
  • Chapter 8: Building Workflows with Flask
  • Technical requirements
  • Building workflows with Celery tasks
  • Creating task signatures
  • Utilizing Celery primitives
  • Implementing a sequential workflow
  • Passing inputs to signatures
  • Running independent and parallel tasks
  • Using callbacks to manage task results
  • Creating BPMN and non-BPMN workflows with SpiffWorkflow.
  • Setting up the development environment
  • Creating a BPMN diagram
  • Implementing the BPMN workflow
  • Distinguishing between workflow specifications and instances
  • Identifying between task specifications and instances
  • Passing form data to UserTask
  • Adding input variables to ScriptTask
  • Managing the result of the workflow
  • Implementing a non-BPMN workflow
  • Running a non-BPMN workflow
  • Building service tasks with the Zeebe/Camunda platforms
  • Setting up the Zeebe server
  • Installing the pyzeebe library
  • Creating a BPMN diagram for pyzeebe
  • Creating a pyzeebe worker
  • Implementing the pyzeebe client
  • Building API endpoints
  • Using Airflow 2.x in orchestrating API endpoints
  • Installing and configuring Airflow 2.x
  • Creating tasks
  • Utilizing Airflow built-in REST endpoints
  • Implementing workflows using Temporal.io
  • Setting up the environment
  • Implementing activities and a workflow
  • Building a worker
  • Running activities
  • Summary
  • Chapter 9: Securing Flask Applications
  • Technical requirements
  • Adding protection from web vulnerabilities
  • Applying form validation to request data
  • Sanitizing form inputs
  • Securing response data
  • Rendering Jinja2 variables
  • Adding security response headers
  • Using HTTPS to run request/response transactions
  • Managing user credentials
  • Encrypting user passwords
  • Using sqlalchemy_utils for encrypted columns
  • Utilizing the server-side sessions
  • Implementing web form authentication
  • Preventing CSRF attacks
  • Implementing user authentication and authorization
  • Utilizing the Flask-HTTPAuth module
  • Utilizing the Authlib module
  • Controlling the view or API access
  • Summary
  • Part 3: Testing, Deploying, and Building Enterprise-Grade Applications
  • Chapter 10: Creating Test Cases for Flask
  • Technical requirements.
  • Creating test cases for web views, repository classes, and native services.