FastAPI

Pilnīga izvietošanas rokasgrāmata: FastAPI NStrim platformā

Pārskats

FastAPI ir moderns, augstas veiktspējas Python tīmekļa ietvars API veidošanai. Tas nodrošina automātisku interaktīvu dokumentāciju, tipu norāžu validāciju un async atbalstu no kastes.

Pirms sākat
Pārliecinieties, ka jūsu vadības panelis ir atvērts - jums būs nepieciešami tur redzamie Git piekļuves dati. Šī veidne ietver FastAPI, Uvicorn, SQLAlchemy ORM, PyMySQL draiveri, Pydantic un Jinja2 veidņu dzinēju.

Ātrais starts

1

Izveidot repozitoriju no veidnes

Savā vadības panelī atveriet cilni Tools & Deployment. Noklikšķiniet uz pogas "New Repository", izvēlieties FastAPI veidni no nolaižamā saraksta, ievadiet repozitorija nosaukumu un apakšdomēnu, un noklikšķiniet "Create Repository".

2

Klonēt savu repozitoriju

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Instalēt atkarības

pip install -r requirements.txt
4

Palaist izstrādes serveri

uvicorn app.main:app --reload

Serveris darbojas uz http://localhost:8000. Interaktīvā API dokumentācija pieejama: http://localhost:8000/docs.

5

Augšupielādēt izmaiņas

git add .
git commit -m "Initial setup"
git push origin main
Katrs push uz Git automātiski izvieto jūsu lietojumprogrammu. Pārbaudiet moduļa darba URL savā vadības panelī, lai redzētu savu tiešsaistes vietni.

Lokālā izstrāde ar Docker

Ja jums nav lokāli instalēts Python, varat izmantot Docker, lai palaistu savu FastAPI lietojumprogrammu.

Kas ir Docker?
Docker izveido izolētus konteinerus ar visu nepieciešamo programmatūru (Python, pip), neinstalējot tos jūsu datorā.

Komandu izpilde ar Docker

# Instalēt atkarības
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Palaist izstrādes serveri
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && uvicorn app.main:app --host 0.0.0.0 --reload"

Datubāzes konfigurācija

NStrim platforma nodrošina jums MySQL/MariaDB datubāzi. Konfigurējiet savienojumu .env failā vai tieši datubāzes konfigurācijas modulī.

DATABASE_URL=mysql+pymysql://<username>:<password>@db.<session-domain>:3306/<username>
Svarīgi
Jūsu datubāzes nosaukums un lietotājvārds parasti sakrīt ar jūsu vadības paneļa lietotājvārdu (piemēram, student01). Pārbaudiet vadības paneļa piekļuves datu sadaļu, lai iegūtu precīzas vērtības.

Projekta struktūra

├── app/
│   ├── main.py                # FastAPI lietojumprogrammas ieejas punkts
│   ├── routers/               # Maršrutu moduļi
│   ├── models/                # SQLAlchemy modeļi
│   ├── schemas/               # Pydantic shēmas
│   └── database.py            # Datubāzes savienojums
├── templates/                 # Jinja2 veidnes
├── static/                    # CSS, JS, attēli
├── requirements.txt           # Python atkarības
└── Dockerfile                 # Docker konfigurācija
        

Bieži veicamie uzdevumi

API galapunkta izveide

from fastapi import APIRouter

router = APIRouter()

@router.get("/users")
async def get_users():
    return [{"name": "Alice"}, {"name": "Bob"}]

@router.post("/users")
async def create_user(name: str, email: str):
    return {"name": name, "email": email}

SQLAlchemy izmantošana

from sqlalchemy import Column, Integer, String
from app.database import Base

class User(Base):
    __tablename__ = "users"

    id = Column(Integer, primary_key=True, index=True)
    name = Column(String(100))
    email = Column(String(255), unique=True)

Pydantic shēma validācijai

from pydantic import BaseModel

class UserCreate(BaseModel):
    name: str
    email: str

class UserResponse(BaseModel):
    id: int
    name: str
    email: str

    class Config:
        from_attributes = True

Noderīgas komandas

uvicorn app.main:app --reload Palaist izstrādes serveri ar automātisku pārlādi
pip install -r requirements.txt Instalēt atkarības
pip freeze > requirements.txt Saglabāt pašreizējās atkarības

Problēmu novēršana

OperationalError: Can't connect to MySQL server

Iemesls: Datubāzes resursdators ir nepareizs vai nav pieejams.

Risinājums: Pārbaudiet, vai DATABASE_URL atbilst datubāzes resursdatoram no jūsu vadības paneļa.

ModuleNotFoundError: No module named 'app'

Risinājums: Pārliecinieties, ka palaižat uvicorn no projekta saknes direktorija un ka eksistē app/__init__.py fails.

422 Unprocessable Entity

Risinājums: FastAPI automātiski validē pieprasījuma datus. Pārbaudiet atbildes pamattekstu, lai uzzinātu, kuri lauki nav izturējuši validāciju. Apmeklējiet /docs, lai redzētu sagaidāmo pieprasījuma formātu.

Izvietošanas process

Koda izmaiņas git push pip install Tiešsaistē!
Papildu informācijai apmeklējiet oficiālo FastAPI dokumentāciju.