0Pricing
Flask Academy · Ders

Betiklerde ve Kabuklarda Bağlam İtme

app_context ile istek dışında kod çalıştırın.

Betiklerde ve Kabuklarda Bağlam İtme, CoddyKit'te ücretsiz bir Flask Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Flask Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Flask Academy kursu toplamda 4 dersten oluşur.

Web'in Dışında

Bazen Flask kodunu, veritabanını başlangıç verileriyle dolduran bir script gibi istek olmadan çalıştırırsınız. Bağlam olmadığından alışılmış vekiller çalışmaz.

Belirgin Hata

Böyle bir kodu çalıştırdığınızda Flask şu hatayı oluşturur: RuntimeError: working outside of application context. Bu, etkin bir uygulama bağlamı olmadığını bildirir.

Bağlamı Kendiniz Oluşturun

app.app_context() ile bir bağlam oluşturarak sorunu çözün. Kodunuzu bir with bloğuna sarın; current_app yeniden çalışmaya başlar.

with app.app_context():
    print(current_app.name)

with Bloğu Ne Yapar?

with bloğuna girildiğinde bağlam oluşturulur, bloktan çıkıldığında ise kaldırılır. Temizleme işlemini elle yapmanız gerekmez.

Artık Uzantılar Çalışır

Blok içinde uygulamaya bağlı uzantılar normal şekilde davranır. Düz bir betikten db.create_all() çalıştırabilir veya modelleri sorgulayabilirsiniz.

with app.app_context():
    db.create_all()

Sahte Bir İsteğe mi İhtiyacınız Var?

request okuyan kodu çalıştırmak için uygulama bağlamı yerine test_request_context ile bir test istek bağlamı oluşturun.

with app.test_request_context("/hello"):
    print(request.path)

Flask Kabuğu

flask shell komutu, uygulama bağlamı zaten oluşturulmuş bir Python kabuğu açar; böylece uygulamanızı etkileşimli olarak inceleyebilirsiniz.

flask shell

CLI Komutları da

Kaydını yaptığınız özel flask komutları da otomatik olarak bir uygulama bağlamı içinde çalışır; böylece seed ve yönetici betikleri doğrudan çalışır.

@app.cli.command()
def seed():
    db.create_all()

Doğru Bağlamı Eşleştirin

İhtiyacınıza göre seçim yapın: yalnızca uygulamaya veya veritabanına dokunuyorsanız app_context kullanın; kodunuz istek verilerini okuyorsa bir istek bağlamı kullanın.

Kapsamı Dar Tutun

Bağlamları betiğin tamamı boyunca değil, dar bir with bloğu içinde oluşturun. Daha küçük bir kapsam, kodun daha anlaşılır olmasını ve kaynakların öngörülebilir biçimde serbest bırakılmasını sağlar.

Bu Neden Önemli

Bağlam oluşturmak, uygulama mantığını yalnızca canlı web istekleri içinde değil, migrations, zamanlanmış görevler ve testlerde de yeniden kullanmanızı sağlar.

Hızlı Kontrol

Bağlam hatasının çözümünü kesinleştirelim.

Özet

İstek yoksa bir tane oluşturun. Uygulama ve veritabanı işlemleri için app_context, istek verileri için test_request_context kullanın; gerisini sizin için flask shell halletsin. 🎉

Sıkça Sorulan Sorular

“Betiklerde ve Kabuklarda Bağlam İtme” dersi ücretsiz mi?

Evet — “Betiklerde ve Kabuklarda Bağlam İtme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Flask Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Flask Academy kursu toplamda 4 dersten oluşur.

“Betiklerde ve Kabuklarda Bağlam İtme” dersinde ne öğreneceğim?

app_context ile istek dışında kod çalıştırın. Flask Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Flask Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Flask Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Betiklerde ve Kabuklarda Bağlam İtme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Flask Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Flask Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Uygulama Bağlamı ve İstek Bağlamı
  2. current_app ve g Nesnesi
  3. Bağlam Yerelleri ve İş Parçacığı Güvenliği
  4. Betiklerde ve Kabuklarda Bağlam İtme
← Flask Academy Sayfasına Dön