init_app ile Uzantıları Başlatma
Uzantı bağlamasını uygulama oluşturulana kadar erteleyin.
init_app ile Uzantıları Başlatma, CoddyKit'te ücretsiz bir Flask Academy dersidir. Bu, 4 dersinin 3. 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.
Uzantı İkilemi
SQLAlchemy gibi uzantılar daha önce uygulamayı hemen alırdı. Bir fabrika içinde bu işe yaramaz, çünkü içe aktarma sırasında app henüz mevcut değildir. 🤔
Uygulama Olmadan Oluşturun
Çözüm iki adımdan oluşur. İlk olarak, modül düzeyinde uzantı nesnesini no app ile oluşturun. Şimdilik bağlı olmadan kalır.
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() # no app yetDaha Sonra Bağlayın
İkinci olarak, uygulama oluşturulduktan sonra fabrika içinde init_app işlevini çağırın. Böylece uzantı o belirli örneğe bağlanır.
def create_app():
app = Flask(__name__)
db.init_app(app)
return appNeden İki Adım?
Uzantı nesnesi bir genel değişken olarak imported anywhere olabilir; gerçek bağlama ise fabrika bir yapılandırma seçene kadar bekler. Her iki yaklaşımın da en iyi yönlerini elde edersiniz.
Her Yerden İçe Aktarılabilir
db modül düzeyinde bulunduğu için modelleriniz ve görünümleriniz uygulamaya dokunmadan onu serbestçe içe aktarabilir; böylece döngüsel içe aktarmalardan kaçınırsınız.
from app.extensions import dbDüzenli Bir extensions Modülü
Yaygın bir yaklaşım, bağlı olmayan tüm uzantıları tek bir extensions.py dosyasında tutar; ardından fabrika her birini içe aktarır ve başlatır.
db = SQLAlchemy()
migrate = Migrate()
login = LoginManager()Birçok Uzantıyı Tek Seferde Başlatın
create_app içinde her uzantı için init_app işlevini çağırmanız ve aynı yeni uygulamayı hepsine geçirmeniz yeterlidir.
db.init_app(app)
migrate.init_app(app, db)
login.init_app(app)Uygulama Başına Bağlama
Bağlama fabrika içinde gerçekleştiği için iki farklı uygulama aynı uzantı sınıfını birbirinden bağımsız şekilde init_app ile başlatabilir. Testler için harikadır.
Yapılandırma Başlatma Sırasında Okunur
Uzantılar, veritabanı URI'si gibi ayarları init_app sırasında okur. Bu nedenle uzantıları bağlamadan önce bu yapılandırma değerlerini ayarlayın.
app.config["SQLALCHEMY_DATABASE_URI"] = uri
db.init_app(app)Bir Bağlam İçinde Kullanın
init_app işleminden sonra uzantının sorguları gerçekten çalıştırabilmesi için bir app context gerekir; çünkü hangi uygulamayla iletişim kurduğunu bilmelidir.
with app.app_context():
db.create_all()Altın Kural
Uzantıyı içe aktarma sırasında bağlı olmadan oluşturun, ardından fabrika içinde init_app işlevini çağırın. Bu tek bölme, tüm yaklaşımın önünü açar. 🔑
Hızlı Kontrol
Neden bir uzantı nesnesi uygulama olmadan oluşturulup sonra init_app çağrılır?
Özet
İki adımlı yaklaşımı öğrendiniz: uzantıları bağlı olmadan oluşturmak ve ardından fabrika içinde init_app işlevini çağırmak. Döngüsel içe aktarmalar olmadan içe aktarılabilir genel değişkenler ve uygulama başına bağlama elde edersiniz. 🌟
Sıkça Sorulan Sorular
“init_app ile Uzantıları Başlatma” dersi ücretsiz mi?
Evet — “init_app ile Uzantıları Başlatma” 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.
“init_app ile Uzantıları Başlatma” dersinde ne öğreneceğim?
Uzantı bağlamasını uygulama oluşturulana kadar erteleyin. 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 3. dersidir.
“init_app ile Uzantıları Başlatma” 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
- Genel app Nesnesinin Sorunları
- create_app İşlevi Yazma
- init_app ile Uzantıları Başlatma
- Fabrikada Blueprint’leri Kaydetme