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): |
|||
response = client.get("/docs") |
|||
assert response.status_code == 200, response.text |
|||
assert ( |
|||
"https://unpkg.com/[email protected]/swagger-ui-bundle.js" in response.text |
|||
) |
|||
assert "https://unpkg.com/[email protected]/swagger-ui.css" in response.text |
|||
assert "https://unpkg.com/swagger-ui-dist@5/swagger-ui-bundle.js" in response.text |
|||
assert "https://unpkg.com/swagger-ui-dist@5/swagger-ui.css" in response.text |
|||
|
|||
|
|||
def test_swagger_ui_oauth2_redirect_html(client: TestClient): |
|||
|
Loading…
Reference in new issue