Back to Templates

Python Sanic - Cloud Functions on EdgeOne Pages

An async Sanic starter with native async support, streaming, and WebSocket capabilities.

View Demo
An async Sanic starter with native async support, streaming, and WebSocket capabilities.

Python Cloud Functions - Sanic | EdgeOne Pages

A demonstration website showcasing how to deploy high-performance async Sanic applications as serverless functions on EdgeOne Pages.

๐Ÿš€ Features

  • Sanic Framework: One of the fastest Python async web frameworks
  • Native Async/Await: Built from the ground up for asynchronous programming
  • Streaming Support: Built-in response streaming capabilities
  • WebSocket Support: Native WebSocket handling
  • Type-validated Routes: Path parameter type validation

๐Ÿ› ๏ธ Tech Stack

Frontend

  • Next.js 15 - React full-stack framework
  • React 19 - User interface library
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS 4 - Utility-first CSS framework

Backend

  • Sanic - Async Python web framework
  • Cloud Functions - EdgeOne Pages serverless functions

๐Ÿ“ Project Structure

python-sanic-template/
โ”œโ”€โ”€ src/                    # Next.js frontend
โ”œโ”€โ”€ cloud-functions/        # Python cloud functions
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ””โ”€โ”€ [[default]].py # Sanic application
โ”‚   โ””โ”€โ”€ requirements.txt   # Python dependencies
โ”œโ”€โ”€ public/                # Static assets
โ””โ”€โ”€ package.json          # Project configuration

๐Ÿš€ Quick Start

Requirements

  • Node.js 18+
  • Python 3.9+
  • EdgeOne CLI

Install Dependencies

npm install

Development Mode

edgeone pages dev

Visit http://localhost:8088 to view the application.

๐ŸŽฏ API Endpoints

MethodPathDescription
GET/api/Root endpoint
GET/api/healthHealth check
GET/api/infoFunction information
GET/api/timeCurrent server time
GET/POST/api/echoEcho request info
POST/api/jsonHandle JSON body
GET/api/users/{user_id}Get user by ID
POST/api/usersCreate new user
GET/api/searchSearch with query params

๐Ÿ“š Documentation

๐Ÿ“„ License

This project is licensed under the MIT License.