CherryPy 是一个用于构建 Web 应用的微框架。它通过简洁的 API 和强大的功能,使开发者能够快速创建高性能的 Web 应用。在生物信息开发中,数据库搭建和模型部署等场景可能会用到,因此记录下。

CherryPy :一个轻量级的 Python Web 框架_API

学习资源

核心特点

  • 简洁API:CherryPy的API设计简洁直观,让Web应用开发变得简单快捷。
  • 内置HTTP服务器:自带多线程服务器,无需额外配置即可启动。
  • 插件丰富:提供多样插件,轻松实现认证、缓存、会话管理等功能。

安装

pip install cherrypy

应用示例

示例一:极简的Hello World

import cherrypy

class HelloWorld:
    @cherrypy.expose
    def index(self):
        return "Hello, World!"

if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld())

CherryPy :一个轻量级的 Python Web 框架_User_02

示例二:处理表单数据

import cherrypy

class FormHandler:
    @cherrypy.expose
    def index(self):
        return """
            <form method="post" action="submit">
                Name: <input type="text" name="name">
                <input type="submit">
            </form>
        """
    @cherrypy.expose
    def submit(self, name):
        return f"Hello, {name}!"

if __name__ == '__main__':
    cherrypy.quickstart(FormHandler())
    
# 用户可以输入姓名并点击 "Submit" 按钮。当用户提交表单时,CherryPy 将数据传递给 process 方法,然后可以使用用户输入的数据生成响应。

CherryPy :一个轻量级的 Python Web 框架_Web_03

示例三:RESTful API

import cherrypy

class RestAPI:
    @cherrypy.expose
    def GET(self, *args, **kwargs):
        if not args:
            return "Welcome to the API!"
        return f"Resource requested: {args[0]}"

if __name__ == '__main__':
    cherrypy.quickstart(RestAPI())
  
# 当用户访问 /api 路径时,它将返回根资源的信息。当用户访问其他路径时,它将显示请求的资源名称。

示例四:数据库集成

import cherrypy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String)

engine = create_engine('sqlite:///mydatabase.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)

class DBExample:
    @cherrypy.expose
    def index(self):
        session = Session()
        session.add(User(username='testuser'))
        session.commit()
        return "New user added!"

if __name__ == '__main__':
    cherrypy.quickstart(DBExample())
    
# 创建了一个 User 类,它对应数据库中的 users 表。使用 SQLAlchemy 创建了一个 SQLite 数据库,并将 User 类映射到数据库表。然后,在 index 方法中向数据库添加了一个用户。

总结

CherryPy 是一个极简、稳定且功能强大的 Web 框架,它通过简洁的 API 和清晰的结构,提供了一种简单快速的方法来构建Web应用程序。使用 CherryPy,可以轻松地创建高性能的Web应用程序,处理请求和生成响应。

参考:

_https://mp.weixin.qq.com/s/gpd1s5AJD6loYxR6rH5MGA;_https://mp.weixin.qq.com/s/2gc3Z9_fQ9gyku0GcALfFg

作者:生物信息与育种,若要及时了解动态信息,请关注同名微信公众号:生物信息与育种。