Bootcamp i FastAPI-backendudvikling · Lektion

Headers, cookies og brugerdefinerede responser

Læs request-headers og cookies, sæt dem på responser, og returnér brugerdefinerede responstyper som plain text, HTML, redirects og streaming i FastAPI.

Lektion 4 af 413 trin

Headers, cookies og brugerdefinerede responser er en gratis Bootcamp i FastAPI-backendudvikling-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Bootcamp i FastAPI-backendudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.

Ud over JSON-brødteksten

Håndtering af anmodninger og svar omfatter mere end JSON-brødteksten. Headers og cookies indeholder metadata som godkendelsestokens, indholdsforhandling og sessioner. FastAPI giver dig typeangivet adgang til begge dele.

Læsning af en header

Deklarer en parameter med Header for at læse en indgående header. FastAPI konverterer automatisk user_agent til headernavnet User-Agent.

from fastapi import FastAPI, Header

app = FastAPI()

@app.get('/info')
async def info(user_agent: str = Header(default=None)):
    return {'ua': user_agent}

Læsning af cookies

Brug Cookie til at læse en navngiven cookie, ligesom med headers og forespørgselsparametre.

from fastapi import Cookie

@app.get('/session')
async def session(session_id: str = Cookie(default=None)):
    return {'session': session_id}

Angivelse af headers på et svar

Injicer et Response-objekt for at angive headers, samtidig med at du stadig returnerer normale data.

from fastapi import Response

@app.get('/items')
async def items(response: Response):
    response.headers['X-Total-Count'] = '42'
    return ['a', 'b']

Angivelse af cookies

Kald response.set_cookie for at sende en cookie tilbage til klienten. Tilføj flag som httponly og secure af hensyn til sikkerheden.

@app.post('/login')
async def login(response: Response):
    response.set_cookie('session_id', 'abc123', httponly=True, secure=True)
    return {'ok': True}

Svar med ren tekst og HTML

Returner indhold, der ikke er JSON, med specialiserede svarklasser.

from fastapi.responses import PlainTextResponse, HTMLResponse

@app.get('/text', response_class=PlainTextResponse)
async def text():
    return 'hello'

@app.get('/page', response_class=HTMLResponse)
async def page():
    return '<h1>Hi</h1>'

Omdirigeringer

Send klienten et andet sted hen med RedirectResponse. Vælg statuskoden for permanente eller midlertidige omdirigeringer.

from fastapi.responses import RedirectResponse

@app.get('/old')
async def old():
    return RedirectResponse(url='/new', status_code=301)

Konvertering af headernavne

FastAPI konverterer understregninger i parameternavne til bindestreger i headers. Dette enkle eksempel viser den samme idé.

def to_header_name(param):
    return '-'.join(w.capitalize() for w in param.split('_'))
print(to_header_name('user_agent'))
print(to_header_name('x_api_key'))

Streaming-svar

For store eller genererede datamængder kan du streame dem med StreamingResponse, så alt ikke skal gemmes i hukommelsen på én gang.

from fastapi.responses import StreamingResponse

def rows():
    for i in range(3):
        yield f'row {i}\n'

@app.get('/export')
async def export():
    return StreamingResponse(rows(), media_type='text/plain')

Brugerdefinerede statuskoder

Angiv en standardstatus for en handling med argumentet status_code, eller tilsidesæt den pr. anmodning via det injicerede Response.

from fastapi import status

@app.post('/items', status_code=status.HTTP_201_CREATED)
async def create():
    return {'created': True}

Sikkerhedsbemærkninger

Når du angiver godkendelsescookies, bør du foretrække httponly=True (blokerer JavaScript-adgang), secure=True (kun HTTPS) og samesite for at begrænse CSRF.

Hurtig kontrol

Du deklarerer x_api_key: str = Header(). Hvilken indgående HTTP-header knytter FastAPI dette til?

Opsummering

Du har håndteret hele overfladen for anmodninger og svar:

  • Læst headers og cookies med Header og Cookie.
  • Angivet headers og cookies via det injicerede Response.
  • Returneret ren tekst, HTML, omdirigeringer og streaming-svar.
  • Anvendt sikre cookieflag og brugerdefinerede statuskoder.
Gratis at komme i gang

Lær Bootcamp i FastAPI-backendudvikling med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
21
Lektioner
84

Ofte stillede spørgsmål

Er lektionen “Headers, cookies og brugerdefinerede responser” gratis?

Ja — alle 3 lektioner i læringssporet Bootcamp i FastAPI-backendudvikling, inklusive “Headers, cookies og brugerdefinerede responser”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Headers, cookies og brugerdefinerede responser”?

Læs request-headers og cookies, sæt dem på responser, og returnér brugerdefinerede responstyper som plain text, HTML, redirects og streaming i FastAPI. Du øver dig i Bootcamp i FastAPI-backendudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Bootcamp i FastAPI-backendudvikling?

Der kræves ingen tidligere erfaring. Bootcamp i FastAPI-backendudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Headers, cookies og brugerdefinerede responser”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Bootcamp i FastAPI-backendudvikling-lektion?

Ja. Alle Bootcamp i FastAPI-backendudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Pydantic-modeller til request body
  2. Response-modeller og statuskoder
  3. Formulardata og filuploads
  4. Headers, cookies og brugerdefinerede responser
← Tilbage til Bootcamp i FastAPI-backendudvikling