分享

这个Python库竟然吊打Flask?

 只怕想不到 2024-05-16 发布于湖北

    CherryPy是一个开源的Web框架,它实现了Web服务器接口,并且提供了一个简单的对象发布系统。使用CherryPy,你可以用Python快速地创建Web应用,而无需依赖复杂的外部库。

「安装」

pip install cherrypy

基础结构

  • 「控制器(Controller)」:处理HTTP请求并返回响应。

  • 「模型(Model)」:处理业务逻辑和数据存储。

  • 「视图(View)」:负责渲染HTML页面。

「简单的Web服务器」

import cherrypy
class HelloWorld:
    @cherrypy.expose
    def index(self):
        return 'Hello, World!'
if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld())

「登录功能」

import cherrypy
from cherrypy.lib.auth import basic_auth
class Login:
    @cherrypy.expose
    @basic_auth(auth_realm='Login Required', users={'admin''password'})
    def index(self):
        return 'You are logged in!'
if __name__ == '__main__':
    cherrypy.quickstart(Login())

「上传图片」

import cherrypy
from cherrypy.lib import files
class Upload:
    @cherrypy.expose
    def index(self):
        return files.file_processor(cherrypy.request, 'file''/tmp/')
if __name__ == '__main__':
    cherrypy.quickstart(Upload())

「用户注册」

import cherrypy
from cherrypy.tutorial import models
class Register:
    @cherrypy.expose
    def index(self):
        username = cherrypy.request.params.get('username')
        password = cherrypy.request.params.get('password')
        # 这里应该添加用户注册的逻辑
        return f'Registered as {username}!'
if __name__ == '__main__':
    cherrypy.quickstart(Register())

「留言板」

import cherrypy
class GuestBook:
    def __init__(self):
        self.messages = []
    @cherrypy.expose
    def index(self):
        return cherrypy.lib.templates.render('guestbook.html', messages=self.messages)
    @cherrypy.expose
    def add(self, name, message):
        self.messages.append({'name': name, 'message': message})
        raise cherrypy.HTTPRedirect('/index')

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多