Table of contents
1.
Introduction to CherryPy🤓
2.
About CherryPy🍒
3.
Benefits of using CherryPy
4.
Features of Cherrypy Framework
4.1.
Open-sourced framework🖼️
4.2.
Simplicity😊
4.3.
Deployment🧑‍💻
4.4.
Power⚡
4.5.
Community Help👥
5.
Basic requirements to install CherryPy 🧑‍💻
6.
Logging into CherryPy⬇️
6.1.
Disable logging in CherryPy 
7.
Examples
7.1.
Write request.hooks to the cherrypy error log
7.2.
Acquire an exclusive lock on the currently-loaded session data.
8.
Get Started!✨
9.
Frequently Asked Questions
9.1.
What are CherryPy Web services?
9.2.
Is CherryPy paid service?
9.3.
Does CherryPy have its own web server?
9.4.
Is CherryPy an MVC framework?
9.5.
What is the CherryPy configuration?
10.
Conclusion🏁
Last Updated: Mar 27, 2024
Medium

Logging in cherrypy

Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction to CherryPy🤓

Hey Ninjas! Another day of learning and exploring? You’ve come to just the right place.

Today lets learn how to log into CherryPy and then look through resources that will help you get started with CherryPy.

loggin in cherrypy

So what are you waiting for? Let's get rolling with the troduction to CherryPy and its strengths!

About CherryPy🍒

CherryPy is an object-oriented web application framework built using the Python programming language. It permits developers to build web applications the same way they would be made using any other object-oriented Python program. This leads to smaller source code developed in less time.

CherryPy uses Python's main strength as a dynamic language to model, build and bind HTTP protocol into an API. It is one of the oldest Python web frameworks, which provides a clean interface and reliable platform. It runs anywhere Python runs and does not require a compiler.

about cherrypy

CherryPy is more than a decade old, and it has consistently proven to be fast and reliable. It is currently being used in production by many sites, from the simplest to the most demanding. It is designed to rapidly develop web applications by wrapping the HTTP protocol but stays at a low level.

CherryPy can act as a web server or be launched via any WSGI (Web Server Gateway Interface) environment. The framework can be extended with filters, which are called at defined points in the request/response processing. CherryPy does not deal with tasks like backend access or templating for output rendering.

Benefits of using CherryPy

⚡In CherryPy, everything can be swapped and customized.

⚡It is effortless to run multiple HTTP servers on multiple ports at once.

⚡It has a powerful configuration system for both developers and deployers.

⚡It has a flexible plugin system.

⚡Built-in tools for authentication, encoding, sessions,  caching, static content, and more.

⚡It is a reliable, HTTP/1.1-compliant WSGI web server.

⚡Built-in profiling, coverage, and testing support.

⚡Runs on Python 2.7+, 3.1+, PyPy, Jython, and Android.

Features of Cherrypy Framework

Open-sourced framework🖼️

CherryPy is an open-source BSD license, which means this framework can be used commercially at ZERO cost.

Simplicity😊

Developing a project using CherryPy is a super simple task with a few lines of code written as per the accord and indentations of the Python language.

CherryPy is very modular in that the primary components are well managed with correct logic concepts. Parent classes can be expanded to child classes.

Deployment🧑‍💻

CherryPy provides cost-effective ways of deploying applications. It includes a ready-for-production HTTP server to host the applications. CherryPy can also be deployed on a WSGI-compliant gateway.

Power⚡

CherryPy supports all the features of Python. It also provides plugins and tools, which are powerful extension points needed to develop world-class applications.

Community Help👥

It has a passionate community that provides all the necessary support to questions. The community gives complete assistance to developers from the beginner level to the master.

Basic requirements to install CherryPy 🧑‍💻

CherryPy does not have any compulsory requirements as it comes with its own pluggable components and modules. But to use certain features, we need to install a few packages.

Basic requirements for the installation of the CherryPy framework are:

CherryPy 3.0

Python with version 2.7 or above

CherryPy can be installed using Python package managers like setup tools or pip.

$ easy_install cherrypy #command to install cherrypy
pip install cherrypy


We can get the latest CherryPy version by fetching the source code from Github:

$ git clone https://github.com/cherrypy/cherrypy
$ cd cherrypy
$ python setup.py install

Logging into CherryPy⬇️

logging

Logging is the very first task in any application. CherryPy, by default logs all the incoming requests along with the protocol errors.

This is mainly performed by CherryPy using two loggers:

A logger that accesses every incoming requests

An error/application log that traces errors or messages on application level.

Your application may attend to the second logger by calling cherrypy.log().

cherrypy.log("hello there")

 

We can also try to log an exception:

try:
   ...
except Exception:
   cherrypy.log("kaboom!", traceback=True)
Both logs will be written into files identified by the following keys in the configuration:
log.access_file - using the common log format for incoming requests
log.error_file for the other logger

 

Disable logging in CherryPy 

To, we can disable file logging in CherryPy by setting up an empty string in the global configuration to log.access_file or log.error_file keys

To disable the console logging, we will set log.screen to False.

cherrypy.config.update({'log.screen': False,
                        'log.access_file': '',
                        'log.error_file': ''})

Examples

Write request.hooks to the cherrypy error log

 

def log_hooks(debug=False):
   request = cherrypy.serving.request


    msg = []
    # Sort by the standard points if possible.
    from cherrypy import _cprequest
    points = _cprequest.hookpoints
    for k in request.hooks.keys():
        if k not in points:
            points.append(k)


    for k in points:
        msg.append('    %s:' % k)
        v = request.hooks.get(k, [])
        v.sort()
        for h in v:
            msg.append('        %r' % h)
    cherrypy.log('\nRequest Hooks for ' + cherrypy.url() +
                 ':\n' + '\n'.join(msg), 'HTTP')

Acquire an exclusive lock on the currently-loaded session data.

 

def acquire_lock(self, path=None):
    
        if path is None:
            path = self._get_file_path()
        path += self.LOCK_SUFFIX
        checker = locking.LockChecker(self.id, self.lock_timeout)
        while not checker.expired():
            try:
                self.lock = zc.lockfile.LockFile(path)
            except zc.lockfile.LockError:
                time.sleep(0.1)
            else:
                break
        self.locked = True
        if self.debug:
            cherrypy.log('Lock acquired.', 'TOOLS.SESSIONS') 

Get Started!✨

All new to CherryPy? Don't worry! Here are a few of our resources that will aid you in getting started.

What is CherryPy🔎

Why CherryPy🤔❓

Environmental setup for CherryPy⚒️

Uploading file and reading it in CherryPy python.⬆️📈

Authentication in CherryPy🔐

Frequently Asked Questions

What are CherryPy Web services?

CherryPy web services are a set of web-based additives that aid in changing data between systems or applications.

Is CherryPy paid service?

CherryPy is a completely free object-oriented web framework that can be installed and run on your system without any charges.

Does CherryPy have its own web server?

Yes! CherryPy comes with its own HTTP web server, which makes it self-contained and enables users to run its utility within minutes of installation.

Is CherryPy an MVC framework?

Yes! CherryPy offers the ability to launch a new application by using just a command or file as it supports Model-View-Controller architectural pattern.

What is the CherryPy configuration?

CherryPy framework has its own configuration system allowing the users to parameterize the HTTP server. The configuration settings are either saved as a Python dictionary or just as a textual context record.

Conclusion🏁

This article provides a brief introduction to CherryPy along with few of its strengths and features. We have also learnt how to login and disable logging in cherrypy. You can learn more about CherryPy by referring to the articles in te resources section. 

Now that you're familiar with CherryPy learn how to configure application settings, Architecture of Config In CherryPy, Namespaces in CherryPy, and perform arithmetic in CherryPy python, or Start with the basics of Python.

Happy learning!

Live masterclass