Robyn和其他框架对比
## Robyn和其他框架对比
```python
```
我该怎么选:
- Robyn 是为追求高性能、低延迟和并发处理的开发者设计的,尤其适合构建现代的Web应用和API。
- Flask 适合小型项目、原型开发,易于上手。
- FastAPI 在性能和功能之间找到了平衡,非常适合构建高性能API。
- Django 提供了全栈开发的完整解决方案,适用于大型复杂的Web应用。
## 用Robyn从0到1搭建一个Web API
### 安装依赖库
```python
pip install robyn
```
##代码示例
### 1. 创建基础服务
```python
from robyn import Robyn
app = Robyn(__file__) # 创建Robyn应用
@app.get("/ping")
def ping():
return "Pong!"
if __name__ == "__main__":
app.start(host="0.0.0.0",port=8080)
```
> 运行这段代码后,打开浏览器访问http://localhost:8080/ping,看到Pong! ,这就是程序员世界里的"你好,世界"!🌍
### 2. 支持POST请求
```python
@app.post("/echo")
def echo(request):
data = request.body
return {"echo": data}
```
使用curl测试
```python
curl -X POST -d "Hello, 花小姐的春天!" http://localhost:8080/echo
```
### 3. JSON处理与参数支持
```python
import json
@app.post("/json")
def handle_json(request):
data = json.loads(request.body)
name = data.get("name", "Python")
return {"message": f"Hello, {name}!"}
@app.get("/greet")
def greet(request):
data = json.loads(request.body)
name = data.get("name", "Stranger")
return {"greeting": f"Hi, {name}!"}
```
### 4. 日志功能|Robyn中间件应用
```python
import logging
from robyn import Request
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
handlers=[
logging.FileHandler("app.log"), # 将日志写入文件
logging.StreamHandler() # 同时输出到终端
]
)
logger = logging.getLogger("robyn_app")
@app.before_request() # 可以指定路由,不填写就表示全部路由生效
async def hello_before_request(request: Request):
logger.info(f"Incoming {request.method} request to {request.url.path}")
return request
```
### 5. 跨域支持(CORS)
```python
from robyn import Robyn, ALLOW_CORS
app = Robyn(__file__)
ALLOW_CORS(app, origins = ["http://localhost:<PORT>/"])
```
### 6. 发布和部署,, 这里推荐 用Gunicorn+Uvicorn部署
```python
pip install gunicorn uvicorn
```
#### 6.1 然后运行
```python
gunicorn -w 4 -k uvicorn.workers.UvicornWorker app:app
```

浙公网安备 33010602011771号