committed by
GitHub
8 changed files with 76 additions and 12 deletions
@ -0,0 +1,21 @@ |
|||||
|
# Deployment (Yayınlama) |
||||
|
|
||||
|
**FastAPI** uygulamasını deploy etmek oldukça kolaydır. |
||||
|
|
||||
|
## Deployment Ne Anlama Gelir? |
||||
|
|
||||
|
Bir uygulamayı **deploy** etmek (yayınlamak), uygulamayı **kullanıcılara erişilebilir hale getirmek** için gerekli adımları gerçekleştirmek anlamına gelir. |
||||
|
|
||||
|
Bir **Web API** için bu süreç normalde uygulamayı **uzak bir makineye** yerleştirmeyi, iyi performans, kararlılık vb. özellikler sağlayan bir **sunucu programı** ile **kullanıcılarınızın** uygulamaya etkili ve kesintisiz bir şekilde **erişebilmesini** kapsar. |
||||
|
|
||||
|
Bu, kodu sürekli olarak değiştirdiğiniz, hata alıp hata giderdiğiniz, geliştirme sunucusunu durdurup yeniden başlattığınız vb. **geliştirme** aşamalarının tam tersidir. |
||||
|
|
||||
|
## Deployment Stratejileri |
||||
|
|
||||
|
Kullanım durumunuza ve kullandığınız araçlara bağlı olarak bir kaç farklı yol izleyebilirsiniz. |
||||
|
|
||||
|
Bir dizi araç kombinasyonunu kullanarak kendiniz **bir sunucu yayınlayabilirsiniz**, yayınlama sürecinin bir kısmını sizin için gerçekleştiren bir **bulut hizmeti** veya diğer olası seçenekleri kullanabilirsiniz. |
||||
|
|
||||
|
**FastAPI** uygulamasını yayınlarken aklınızda bulundurmanız gereken ana kavramlardan bazılarını size göstereceğim (ancak bunların çoğu diğer web uygulamaları için de geçerlidir). |
||||
|
|
||||
|
Sonraki bölümlerde akılda tutulması gereken diğer ayrıntıları ve yayınlama tekniklerinden bazılarını göreceksiniz. ✨ |
@ -0,0 +1,39 @@ |
|||||
|
# Statik Dosyalar |
||||
|
|
||||
|
`StaticFiles`'ı kullanarak statik dosyaları bir yol altında sunabilirsiniz. |
||||
|
|
||||
|
## `StaticFiles` Kullanımı |
||||
|
|
||||
|
* `StaticFiles` sınıfını projenize dahil edin. |
||||
|
* Bir `StaticFiles()` örneğini belirli bir yola bağlayın. |
||||
|
|
||||
|
```Python hl_lines="2 6" |
||||
|
{!../../../docs_src/static_files/tutorial001.py!} |
||||
|
``` |
||||
|
|
||||
|
!!! note "Teknik Detaylar" |
||||
|
Projenize dahil etmek için `from starlette.staticfiles import StaticFiles` kullanabilirsiniz. |
||||
|
|
||||
|
**FastAPI**, geliştiricilere kolaylık sağlamak amacıyla `starlette.staticfiles`'ı `fastapi.staticfiles` olarak sağlar. Ancak `StaticFiles` sınıfı aslında doğrudan Starlette'den gelir. |
||||
|
|
||||
|
### Bağlama (Mounting) Nedir? |
||||
|
|
||||
|
"Bağlamak", belirli bir yola tamamen "bağımsız" bir uygulama eklemek anlamına gelir ve ardından tüm alt yollara gelen istekler bu uygulama tarafından işlenir. |
||||
|
|
||||
|
Bu, bir `APIRouter` kullanmaktan farklıdır çünkü bağlanmış bir uygulama tamamen bağımsızdır. Ana uygulamanızın OpenAPI ve dokümanlar, bağlanmış uygulamadan hiçbir şey içermez, vb. |
||||
|
|
||||
|
[Advanced User Guide](../advanced/index.md){.internal-link target=_blank} bölümünde daha fazla bilgi edinebilirsiniz. |
||||
|
|
||||
|
## Detaylar |
||||
|
|
||||
|
`"/static"` ifadesi, bu "alt uygulamanın" "bağlanacağı" alt yolu belirtir. Bu nedenle, `"/static"` ile başlayan her yol, bu uygulama tarafından işlenir. |
||||
|
|
||||
|
`directory="static"` ifadesi, statik dosyalarınızı içeren dizinin adını belirtir. |
||||
|
|
||||
|
`name="static"` ifadesi, alt uygulamanın **FastAPI** tarafından kullanılacak ismini belirtir. |
||||
|
|
||||
|
Bu parametrelerin hepsi "`static`"den farklı olabilir, bunları kendi uygulamanızın ihtiyaçlarına göre belirleyebilirsiniz. |
||||
|
|
||||
|
## Daha Fazla Bilgi |
||||
|
|
||||
|
Daha fazla detay ve seçenek için <a href="https://www.starlette.io/staticfiles/" class="external-link" target="_blank">Starlette'in Statik Dosyalar hakkındaki dokümantasyonunu</a> incelleyin. |
@ -20,10 +20,8 @@ def client(): |
|||||
def test_swagger_ui_html(client: TestClient): |
def test_swagger_ui_html(client: TestClient): |
||||
response = client.get("/docs") |
response = client.get("/docs") |
||||
assert response.status_code == 200, response.text |
assert response.status_code == 200, response.text |
||||
assert ( |
assert "https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js" in response.text |
||||
"https://unpkg.com/[email protected]/swagger-ui-bundle.js" in response.text |
assert "https://unpkg.com/swagger-ui-dist@5/swagger-ui.css" in response.text |
||||
) |
|
||||
assert "https://unpkg.com/[email protected]/swagger-ui.css" in response.text |
|
||||
|
|
||||
|
|
||||
def test_swagger_ui_oauth2_redirect_html(client: TestClient): |
def test_swagger_ui_oauth2_redirect_html(client: TestClient): |
||||
|
Loading…
Reference in new issue