Flask Series: Model

Thursday, Nov 5, 2015 22:41 · 331 words · 2 minutes read python flask flask series

Flask Series

  1. Prepare the Environment
  2. Structure the Application
  3. Application Configuration
  4. Templating
  5. Model
  6. Testing
  7. Views and Web Forms
  8. Error Management
  9. Security
  10. Optimizations
  11. Healthcheck and Monitoring
  12. Internationalization
  13. Deployment

Logging

Logging is used to collect and store valuable information about the application’s execution, that can be used for troubleshooting purposes. Logging includes either storing data to log files, sending it to monitoring services, Windows event logs, Unix syslogs, etc.. Information, being stored and / or sent, can be text messages, call stacks, everything application and environment related, which can be used later on for debugging.

One of the most common approaches used is to log in files. Below you could have a look at the logging configuration and how to use it within a Flask application:

More logging handlers that can be used are:

  • RotatingFileHandler
  • NTEventLogHandler
  • SysLogHandler

You could control the logging data format as well, helpful information how to achieve this goal can be found here.

Error Management

Flask allows to an error handler to a given HTTP status code. There are two types of errors that we will concentrate on in this blog post – application and route errors. Application errors refer to issues in the application code – catching the raised exceptions, etc.. Route errors are about missing or wrong URLs.

Route Errors

Flask provides developers with means to implement their own error handlers via the errorhandler decorator.

Where you need to specify the client or server error codes and to implement a method that returns the content of the page, plus the error code. More information can be found here.

Application Errors

You could either use try/except to handle an exception (where you know it may appear) or provide global error handler.

Example Log

Testing of the Error Handlers

It is very easy to test the implemented error handlers in the Flask application.

In the next blog post I will describe how to secure your Flask application.

The complete demo application, described in this blog post, can be found here.