oktatas:web:back-end_framework:fastapi:tortoise
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
oktatas:web:back-end_framework:fastapi:tortoise [2024/01/12 14:09] – létrehozva admin | oktatas:web:back-end_framework:fastapi:tortoise [2025/08/01 11:05] (aktuális) – eltávolítva admin | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
- | [[oktatas: | ||
- | |||
- | ====== FastAPI és Tortoise ====== | ||
- | |||
- | * **Szerző: | ||
- | * Copyright (c) 2024, Sallai András | ||
- | * Szerkesztve: | ||
- | * Licenc: [[https:// | ||
- | * Web: https:// | ||
- | |||
- | ===== Függőségek telepítése ===== | ||
- | |||
- | |||
- | < | ||
- | pip install fastapi tortoise | ||
- | </ | ||
- | |||
- | ===== Dolgozók ===== | ||
- | |||
- | <code python main.py> | ||
- | from fastapi import FastAPI, HTTPException | ||
- | from tortoise import fields | ||
- | from tortoise.models import Model | ||
- | from tortoise.contrib.pydantic import pydantic_model_creator | ||
- | from tortoise.contrib.fastapi import register_tortoise | ||
- | |||
- | app = FastAPI() | ||
- | |||
- | class Employee(Model): | ||
- | id = fields.IntField(pk=True) | ||
- | name = fields.CharField(50) | ||
- | city = fields.CharField(50) | ||
- | salary = fields.FloatField() | ||
- | |||
- | Employee_Pydantic = pydantic_model_creator(Employee, | ||
- | EmployeeIn_Pydantic = pydantic_model_creator(Employee, | ||
- | |||
- | @app.get("/ | ||
- | async def get_employees(): | ||
- | return await Employee_Pydantic.from_queryset(Employee.all()) | ||
- | |||
- | @app.get("/ | ||
- | async def get_employee(emp_id: | ||
- | return await Employee_Pydantic.from_queryset_single(Employee.get(id=emp_id)) | ||
- | |||
- | @app.post('/ | ||
- | async def create_employee(employee: | ||
- | employee_obj = await Employee.create(**employee.dict(exclude_unset=True)) | ||
- | return await Employee_Pydantic.from_tortoise_orm(employee_obj) | ||
- | |||
- | |||
- | @app.put('/ | ||
- | async def update_employee(emp_id: | ||
- | existing_employee = await Employee.get_or_none(id=emp_id) | ||
- | if existing_employee is None: | ||
- | raise HTTPException(status_code=404, | ||
- | existing_employee.name = employee.name | ||
- | existing_employee.city = employee.city | ||
- | existing_employee.salary = employee.salary | ||
- | await existing_employee.save() | ||
- | return await Employee_Pydantic.from_tortoise_orm(existing_employee) | ||
- | |||
- | |||
- | @app.delete("/ | ||
- | async def delete_employee(emp_id: | ||
- | affected = await Employee.filter(id=emp_id).delete() | ||
- | return affected | ||
- | |||
- | register_tortoise( | ||
- | app, | ||
- | db_url=' | ||
- | modules={' | ||
- | generate_schemas=True, | ||
- | add_exception_handlers=True | ||
- | ) | ||
- | |||
- | </ | ||
- | |||
- | Futtatás: | ||
- | < | ||
- | pip install uvicorn | ||
- | python -m uvicorn main:app --reload | ||
- | </ | ||
oktatas/web/back-end_framework/fastapi/tortoise.1705064957.txt.gz · Utolsó módosítás: 2024/01/12 14:09 szerkesztette: admin