litefs package
Build a web server framework using Python. Litefs was developed to implement a server framework that can quickly, securely, and flexibly build Web projects. Litefs is a high-performance HTTP server. Litefs has the characteristics of high stability, rich functions, and low system consumption.
Author: leafcoder Email: leafcoder@gmail.com
Copyright (c) 2020, Leafcoder. License: MIT (see LICENSE for details)
Subpackages
- litefs.auth package
AuthAuthMiddlewareBaseUserStoreGitHubProviderGoogleProviderJWTManagerMemoryUserStoreOAuth2OAuth2ProviderOAuth2Provider.access_token_urlOAuth2Provider.authorize_urlOAuth2Provider.generate_pkce_challenge()OAuth2Provider.generate_pkce_verifier()OAuth2Provider.generate_state()OAuth2Provider.get_access_token()OAuth2Provider.get_authorize_url()OAuth2Provider.get_user_info()OAuth2Provider.nameOAuth2Provider.scopeOAuth2Provider.userinfo_url
OAuth2StateOAuth2UserInfoPermissionRoleUserWeChatProviderWeComProvidercreate_oauth2_blueprint()create_token()current_user()decode_token()get_provider()get_user_store()hash_password()init_default_roles_and_permissions()login_required()permission_required()role_required()set_user_store()verify_password()- Submodules
- litefs.auth.jwt module
- litefs.auth.password module
- litefs.auth.middleware module
- litefs.auth.decorators module
- litefs.auth.models module
- litefs.cache package
CacheBackendCacheBackendBaseCacheBackendBase.clear()CacheBackendBase.close()CacheBackendBase.delete()CacheBackendBase.delete_many()CacheBackendBase.delete_pattern()CacheBackendBase.exists()CacheBackendBase.expire()CacheBackendBase.get()CacheBackendBase.get_many()CacheBackendBase.put()CacheBackendBase.set_many()CacheBackendBase.statsCacheBackendBase.ttl()
CacheFactoryCacheManagerDatabaseCacheDatabaseCache.clear()DatabaseCache.close()DatabaseCache.delete()DatabaseCache.delete_many()DatabaseCache.delete_pattern()DatabaseCache.exists()DatabaseCache.expire()DatabaseCache.flush()DatabaseCache.get()DatabaseCache.get_many()DatabaseCache.put()DatabaseCache.set_many()DatabaseCache.ttl()
FileEventHandlerFormCacheLiteFileMemcacheCacheMemoryCacheRedisCacheTreeCacheget_global_cache()- Submodules
- litefs.cache.cache module
- litefs.handlers package
ASGIRequestHandlerBaseRequestHandlerBaseRequestHandler.appBaseRequestHandler.bodyBaseRequestHandler.charsetBaseRequestHandler.configBaseRequestHandler.content_lengthBaseRequestHandler.content_typeBaseRequestHandler.dataBaseRequestHandler.environBaseRequestHandler.filesBaseRequestHandler.formBaseRequestHandler.getBaseRequestHandler.handle_response()BaseRequestHandler.headersBaseRequestHandler.jsonBaseRequestHandler.methodBaseRequestHandler.paramsBaseRequestHandler.path_infoBaseRequestHandler.postBaseRequestHandler.query_stringBaseRequestHandler.refererBaseRequestHandler.render_template()BaseRequestHandler.request_methodBaseRequestHandler.request_uriBaseRequestHandler.server_protocolBaseRequestHandler.sessionBaseRequestHandler.session_idBaseRequestHandler.set_cookie()BaseRequestHandler.start_response()
EnhancedRequestHandlerEnhancedRequestHandler.bodyEnhancedRequestHandler.configEnhancedRequestHandler.content_lengthEnhancedRequestHandler.content_typeEnhancedRequestHandler.cookieEnhancedRequestHandler.environEnhancedRequestHandler.filesEnhancedRequestHandler.get_file()EnhancedRequestHandler.get_post_param()EnhancedRequestHandler.get_query_param()EnhancedRequestHandler.jsonEnhancedRequestHandler.path_infoEnhancedRequestHandler.postEnhancedRequestHandler.queryEnhancedRequestHandler.query_stringEnhancedRequestHandler.refererEnhancedRequestHandler.request_methodEnhancedRequestHandler.request_uriEnhancedRequestHandler.sessionEnhancedRequestHandler.session_idEnhancedRequestHandler.set_cookie()EnhancedRequestHandler.set_form_validator()EnhancedRequestHandler.start_response()EnhancedRequestHandler.validate_all()EnhancedRequestHandler.validate_files()EnhancedRequestHandler.validate_post()EnhancedRequestHandler.validate_query()
RequestHandlerResponseSocketRequestHandlerSocketRequestHandler.bodySocketRequestHandler.charsetSocketRequestHandler.configSocketRequestHandler.content_lengthSocketRequestHandler.content_typeSocketRequestHandler.cookieSocketRequestHandler.dataSocketRequestHandler.default_headersSocketRequestHandler.environSocketRequestHandler.filesSocketRequestHandler.finish()SocketRequestHandler.handle_response()SocketRequestHandler.handler()SocketRequestHandler.jsonSocketRequestHandler.methodSocketRequestHandler.paramsSocketRequestHandler.path_infoSocketRequestHandler.query_stringSocketRequestHandler.redirect()SocketRequestHandler.refererSocketRequestHandler.request_methodSocketRequestHandler.request_uriSocketRequestHandler.server_protocolSocketRequestHandler.sessionSocketRequestHandler.session_idSocketRequestHandler.set_cookie()
WSGIRequestHandlerdouble_slash_sub()imap()is_bytes()parse_form()parse_header()parse_multipart_asgi()parse_multipart_stream()parse_multipart_wsgi()startswith_dot_sub()- Submodules
- litefs.handlers.base module
BaseRequestHandlerBaseRequestHandler.appBaseRequestHandler.bodyBaseRequestHandler.charsetBaseRequestHandler.configBaseRequestHandler.content_lengthBaseRequestHandler.content_typeBaseRequestHandler.dataBaseRequestHandler.environBaseRequestHandler.filesBaseRequestHandler.formBaseRequestHandler.getBaseRequestHandler.handle_response()BaseRequestHandler.headersBaseRequestHandler.jsonBaseRequestHandler.methodBaseRequestHandler.paramsBaseRequestHandler.path_infoBaseRequestHandler.postBaseRequestHandler.query_stringBaseRequestHandler.refererBaseRequestHandler.render_template()BaseRequestHandler.request_methodBaseRequestHandler.request_uriBaseRequestHandler.server_protocolBaseRequestHandler.sessionBaseRequestHandler.session_idBaseRequestHandler.set_cookie()BaseRequestHandler.start_response()
- litefs.handlers.wsgi module
- litefs.handlers.asgi module
- litefs.handlers.socket module
RequestHandlerSocketRequestHandlerSocketRequestHandler.bodySocketRequestHandler.charsetSocketRequestHandler.configSocketRequestHandler.content_lengthSocketRequestHandler.content_typeSocketRequestHandler.cookieSocketRequestHandler.dataSocketRequestHandler.default_headersSocketRequestHandler.environSocketRequestHandler.filesSocketRequestHandler.finish()SocketRequestHandler.handle_response()SocketRequestHandler.handler()SocketRequestHandler.jsonSocketRequestHandler.methodSocketRequestHandler.paramsSocketRequestHandler.path_infoSocketRequestHandler.query_stringSocketRequestHandler.redirect()SocketRequestHandler.refererSocketRequestHandler.request_methodSocketRequestHandler.request_uriSocketRequestHandler.server_protocolSocketRequestHandler.sessionSocketRequestHandler.session_idSocketRequestHandler.set_cookie()
double_slash_sub()imap()is_bytes()startswith_dot_sub()
- litefs.handlers.response module
- litefs.handlers.form module
- litefs.handlers.enhanced module
EnhancedRequestHandlerEnhancedRequestHandler.bodyEnhancedRequestHandler.configEnhancedRequestHandler.content_lengthEnhancedRequestHandler.content_typeEnhancedRequestHandler.cookieEnhancedRequestHandler.environEnhancedRequestHandler.filesEnhancedRequestHandler.get_file()EnhancedRequestHandler.get_post_param()EnhancedRequestHandler.get_query_param()EnhancedRequestHandler.jsonEnhancedRequestHandler.path_infoEnhancedRequestHandler.postEnhancedRequestHandler.queryEnhancedRequestHandler.query_stringEnhancedRequestHandler.refererEnhancedRequestHandler.request_methodEnhancedRequestHandler.request_uriEnhancedRequestHandler.sessionEnhancedRequestHandler.session_idEnhancedRequestHandler.set_cookie()EnhancedRequestHandler.set_form_validator()EnhancedRequestHandler.start_response()EnhancedRequestHandler.validate_all()EnhancedRequestHandler.validate_files()EnhancedRequestHandler.validate_post()EnhancedRequestHandler.validate_query()
- litefs.middleware package
AuthMiddlewareCORSMiddlewareCSRFMiddlewareEnhancedLoggingMiddlewareHealthCheckLoggingMiddlewareMiddlewareMiddlewareManagerMiddlewareManager.add()MiddlewareManager.async_process_exception()MiddlewareManager.async_process_request()MiddlewareManager.async_process_response()MiddlewareManager.clear()MiddlewareManager.get_middleware_instances()MiddlewareManager.process_exception()MiddlewareManager.process_request()MiddlewareManager.process_response()MiddlewareManager.remove()
PrometheusMiddlewareRateLimitMiddlewareRequestContextLoggerSecurityMiddlewareThrottleMiddlewarelog_async_performance()log_performance()- Submodules
- litefs.middleware.base module
MiddlewareMiddlewareManagerMiddlewareManager.add()MiddlewareManager.async_process_exception()MiddlewareManager.async_process_request()MiddlewareManager.async_process_response()MiddlewareManager.clear()MiddlewareManager.get_middleware_instances()MiddlewareManager.process_exception()MiddlewareManager.process_request()MiddlewareManager.process_response()MiddlewareManager.remove()
- litefs.middleware.cors module
- litefs.middleware.health_check module
- litefs.middleware.logging module
- litefs.middleware.rate_limit module
- litefs.middleware.security module
- litefs.server package
BufferedRWPairHTTPServerProcessHTTPServerSocketIOTCPServerTCPServer.address_familyTCPServer.allow_reuse_addressTCPServer.close_request()TCPServer.fileno()TCPServer.finish_request()TCPServer.get_request()TCPServer.handle_error()TCPServer.handle_request()TCPServer.handle_timeout()TCPServer.process_request()TCPServer.request_queue_sizeTCPServer.server_activate()TCPServer.server_bind()TCPServer.server_close()TCPServer.server_forever()TCPServer.shutdown()TCPServer.shutdown_request()TCPServer.socket_typeTCPServer.start()TCPServer.verify_request()
WSGIServermainloop()make_environ()make_headers()- Submodules
- litefs.server.http_server module
EpollHTTPServerProcessHTTPServerSocketIOTCPServerTCPServer.address_familyTCPServer.allow_reuse_addressTCPServer.close_request()TCPServer.fileno()TCPServer.finish_request()TCPServer.get_request()TCPServer.handle_error()TCPServer.handle_request()TCPServer.handle_timeout()TCPServer.process_request()TCPServer.request_queue_sizeTCPServer.server_activate()TCPServer.server_bind()TCPServer.server_close()TCPServer.server_forever()TCPServer.shutdown()TCPServer.shutdown_request()TCPServer.socket_typeTCPServer.start()TCPServer.verify_request()
WSGIServermainloop()make_environ()make_headers()parse_header()server_forever()
- litefs.session package
- litefs.utils package
Submodules
litefs.config module
- class litefs.config.Config(config_file: str | None = None, **kwargs)[源代码]
基类:
object配置管理类
支持多种配置来源和分层管理: 1. 默认配置(内置) 2. 环境配置(如 config.production.yaml) 3. 本地配置(如 config.local.yaml) 4. 环境变量 5. 代码中的配置
配置优先级(从高到低): 代码配置 > 环境变量 > 本地配置 > 环境配置 > 默认值
- DEFAULT_CONFIG = {'cache_backend': 'tree', 'cache_clean_period': 60, 'cache_expiration_time': 3600, 'cache_max_size': 10000, 'celery_backend': None, 'celery_broker': None, 'celery_config': None, 'config_encrypted_keys': [], 'config_env': None, 'config_file': None, 'config_secret_key': None, 'database_cache_table': 'cache', 'database_max_overflow': 20, 'database_pool_recycle': 3600, 'database_pool_size': 10, 'database_pool_timeout': 30, 'database_session_table': 'sessions', 'database_url': None, 'debug': False, 'default_page': 'index,index.html', 'error_pages_dir': None, 'file_cache_clean_period': 60, 'file_cache_expiration_time': 3600, 'host': 'localhost', 'i18n_cookie_name': 'locale', 'i18n_default_locale': 'en', 'i18n_enabled': False, 'i18n_locale_dir': 'locales', 'i18n_param_name': 'locale', 'i18n_supported_locales': ['en'], 'listen': 1024, 'log': './default.log', 'mail_default_from': None, 'mail_host': 'localhost', 'mail_max_retries': 3, 'mail_password': None, 'mail_port': 25, 'mail_template_dir': 'templates/email', 'mail_timeout': 30, 'mail_use_ssl': False, 'mail_use_tls': True, 'mail_username': None, 'max_request_size': 10485760, 'max_upload_size': 52428800, 'memcache_key_prefix': 'litefs:', 'memcache_servers': 'localhost:11211', 'memcache_session_key_prefix': 'litefs:session:', 'port': 9090, 'prometheus_enabled': False, 'prometheus_namespace': 'litefs', 'prometheus_path': '/metrics', 'redis_db': 0, 'redis_host': 'localhost', 'redis_key_prefix': 'litefs:', 'redis_password': None, 'redis_port': 6379, 'redis_session_key_prefix': 'litefs:session:', 'session_backend': 'memory', 'session_expiration_time': 3600, 'session_http_only': True, 'session_max_size': 1000000, 'session_name': 'litefs.sid', 'session_same_site': 'Lax', 'session_secure': None}
- ENV_PREFIX = 'LITEFS_'
litefs.core module
Litefs 应用核心
Litefs 类通过 Mixin 组合各能力模块:
RoutingMixin 路由注册与 WebSocket 入口(app/routing_mixin.py)
ProtocolMixin WSGI / ASGI 协议适配与错误处理(app/protocol_mixin.py)
ExtensionMixin 中间件、插件、健康检查与数据库扩展(app/extension_mixin.py)
ServerMixin 服务器启动、关闭与热重载(app/server_mixin.py)
本文件仅保留应用装配逻辑(构造函数)与向后兼容的符号再导出,
对外接口(from litefs.core import Litefs, make_config, ...)保持不变。
litefs.exceptions module
统一异常处理体系
提供完整的 HTTP 异常类和错误处理机制
- exception litefs.exceptions.BadGateway(message: str | None = None, description: str | None = None)[源代码]
-
502 Bad Gateway - 网关错误
- exception litefs.exceptions.BadRequest(message: str | None = None, description: str | None = None)[源代码]
-
400 Bad Request - 客户端请求语法错误
- exception litefs.exceptions.CacheError(message: str, original_error: Exception | None = None)[源代码]
基类:
Exception缓存错误异常
- exception litefs.exceptions.ConfigurationError(message: str, config_key: str | None = None)[源代码]
基类:
Exception配置错误异常
- exception litefs.exceptions.Conflict(message: str | None = None, description: str | None = None)[源代码]
-
409 Conflict - 请求冲突
- exception litefs.exceptions.DatabaseError(message: str, original_error: Exception | None = None)[源代码]
基类:
Exception数据库错误异常
- class litefs.exceptions.ErrorHandler[源代码]
基类:
object错误处理器
用于注册和管理自定义错误处理函数
- exception litefs.exceptions.Forbidden(message: str | None = None, description: str | None = None)[源代码]
-
403 Forbidden - 服务器拒绝请求
- exception litefs.exceptions.GatewayTimeout(message: str | None = None, description: str | None = None)[源代码]
-
504 Gateway Timeout - 网关超时
- exception litefs.exceptions.Gone(message: str | None = None, description: str | None = None)[源代码]
-
410 Gone - 请求的资源已不存在
- exception litefs.exceptions.HTTPException(status_code: int = 500, message: str | None = None, headers: List[tuple] | None = None, description: str | None = None)[源代码]
基类:
ExceptionHTTP 异常基类
所有 HTTP 异常都应该继承此类
- 参数:
status_code -- HTTP 状态码
message -- 错误消息
headers -- 响应头列表
description -- 详细描述
- litefs.exceptions.HttpError
HTTPException的别名
- exception litefs.exceptions.InternalServerError(message: str | None = None, description: str | None = None)[源代码]
-
500 Internal Server Error - 服务器内部错误
- exception litefs.exceptions.MethodNotAllowed(message: str | None = None, description: str | None = None, allowed_methods: List[str] | None = None)[源代码]
-
405 Method Not Allowed - 请求方法不被允许
- exception litefs.exceptions.NotAcceptable(message: str | None = None, description: str | None = None)[源代码]
-
406 Not Acceptable - 无法满足请求的 Accept 头部
- exception litefs.exceptions.NotFound(message: str | None = None, description: str | None = None)[源代码]
-
404 Not Found - 请求的资源不存在
- exception litefs.exceptions.NotImplemented(message: str | None = None, description: str | None = None)[源代码]
-
501 Not Implemented - 服务器不支持请求的功能
- exception litefs.exceptions.PayloadTooLarge(message: str | None = None, description: str | None = None, max_size: int | None = None)[源代码]
-
413 Payload Too Large - 请求实体过大
- exception litefs.exceptions.RequestTimeout(message: str | None = None, description: str | None = None)[源代码]
-
408 Request Timeout - 请求超时
-
503 Service Unavailable - 服务不可用
- exception litefs.exceptions.TooManyRequests(message: str | None = None, description: str | None = None, retry_after: int | None = None)[源代码]
-
429 Too Many Requests - 请求过多
- exception litefs.exceptions.Unauthorized(message: str | None = None, description: str | None = None, www_authenticate: str | None = None)[源代码]
-
401 Unauthorized - 需要身份认证
- exception litefs.exceptions.UnprocessableEntity(message: str | None = None, description: str | None = None)[源代码]
-
422 Unprocessable Entity - 无法处理的实体
- exception litefs.exceptions.UnsupportedMediaType(message: str | None = None, description: str | None = None)[源代码]
-
415 Unsupported Media Type - 不支持的媒体类型
- exception litefs.exceptions.ValidationError(message: str, field: str | None = None, value: Any | None = None)[源代码]
基类:
Exception验证错误异常
- litefs.exceptions.abort(status_code: int = 500, message: str | None = None, description: str | None = None, **kwargs)[源代码]
抛出 HTTP 异常
- 参数:
status_code -- HTTP 状态码
message -- 错误消息
description -- 详细描述
**kwargs -- 其他参数传递给异常类
- 抛出:
HTTPException -- HTTP 异常