Flask ile basit ama önemsiz bir uygulama oluşturmaya çalışıyorum ve dokümanlar içinde iyi açıklanmayan bir duruma girmeye devam ediyorum.Flask uygulamalarının yapısı
benim app farklı modüller arasında bölünmüş olmak istiyorum, ama ana modülün başka herhangi bir yerden ana app
nesneyi (veya flask-sqlalchemy
den db
) erişmek zor gibi görünüyor. Görünüşe göre, her şeyin erişimi olan bir küresel olarak ele almak için kendi yolunuzu yazmak zorundasınız, ki bu da bazı şüpheli kodlar ve biraz zaman gerektirir. Ana uygulamanın başlatıldığı ve her örneğin en üst düzeyde bulunabileceği varsayılırsa, app
ve db
ve ve db
her ikisi de oluşturulur. Fakat farklı URL işleyicilerini farklı modüllere ayırırsam, @app.route
dekoratörünü kullanma yeteneğini kaybederim. Bunun etrafında app.add_url_rule('/...', some.module...)
ile çalışabilirim, ancak daha sonra uygulama bu işleve aktarılmaz.
db
ile aynı şey gerçekleşir - g
'a yapıştırmam gerekirse veya bir şekilde app
aracılığıyla erişilebilseyim bilmiyorum. Bunu yapmak, modelleri ayrı bir modüle taşımamda bana yardımcı olmaz - onları nasıl alırken db
'a nasıl erişebilirim? Tüm örnekler tekrar yerel bir değişken olarak mevcut olduğunu varsayar.
bir şey bariz eksik yapıyorum yoksa burada yanlış görev için şişeyi kullanmak çalışıyorum?
Dekoratörler sadece bir ürün paketleyicisidir. Tüm sunucu mantığını kapsülleyen bir sınıf oluşturabilir ve sınıfın içindeki tüm "db" ve "app" değişkenlerini saklayabilirsiniz. – Blender
@Blender Sure, bunu el ile çözmenin birçok yolu var. Ya gerçekten öğrenmek istiyorum başa herhangi bir standart yol varsa ve tamamen dokümanlardan eksik gibi görünüyor eğer, ilerde daha fazla sürprizler vardır. Şişenin kendisinden bir yerde sunulan daha belirgin bir çözüm bekliyordum. – viraptor
Sen Blueprint – user956424