入门指南

创建您的第一个Robyn应用程序

让我们从创建一个简单的Robyn应用程序开始。首先,使用pip安装Robyn:

pip install robyn

然后,创建一个新的Python文件 app.py

from robyn import Robyn

app = Robyn(__file__)

@app.get("/")
async def hello_world():
    return "Hello, World!"

if __name__ == "__main__":
    app.start()

现在运行您的应用程序:

python app.py

访问 http://localhost:8080,您应该能看到 "Hello, World!" 消息。

命令行选项

Robyn提供了多个命令行选项来配置您的应用程序:

python app.py --help

输出将显示所有可用选项:

options:
  -h, --help            显示帮助信息
  --processes PROCESSES
                        选择进程数量。[默认值: 1]
  --workers WORKERS     选择工作线程数量。[默认值: 1]
  --dev                 开发模式。根据文件更改自动重启服务器。
  --log-level LOG_LEVEL
                        设置日志级别
  --create              创建新项目模板。
  --docs                打开Robyn文档。
  --open-browser        成功启动时打开浏览器。
  --version            显示Robyn版本。
  --compile-rust-path COMPILE_RUST_PATH
                        编译指定路径中的rust文件。
  --create-rust-file CREATE_RUST_FILE
                        创建指定名称的rust文件。
  --disable-openapi     禁用OpenAPI文档。
  --fast               快速模式。设置最优的进程、工作线程和日志级别。但您可以覆盖这些设置。

路由装饰器

Robyn支持所有标准的HTTP方法:

@app.get("/users")
async def get_users():
    return {"users": ["user1", "user2"]}

@app.post("/users")
async def create_user(request):
    return {"message": "用户已创建"}

@app.put("/users/:id")
async def update_user(request):
    return {"message": "用户已更新"}

@app.delete("/users/:id")
async def delete_user(request):
    return {"message": "用户已删除"}

请求参数

您可以通过多种方式访问请求数据:

@app.post("/api/data")
async def handle_data(request):
    # 访问JSON数据
    json_data = request.json()
    
    # 访问查询参数
    query_params = request.query_params
    
    # 访问路径参数
    path_params = request.path_params
    
    # 访问请求头
    headers = request.headers
    
    return {
        "json": json_data,
        "query": query_params,
        "path": path_params,
        "headers": headers
    }

响应类型

Robyn支持多种响应类型:

from robyn import Response, jsonify

@app.get("/text")
async def text_response():
    return "纯文本响应"

@app.get("/json")
async def json_response():
    return jsonify({"message": "JSON响应"})

@app.get("/custom")
async def custom_response():
    return Response(
        status_code=201,
        description="自定义响应",
        headers={"Content-Type": "text/plain"}
    )