2015-03-23 21 views
5

Ben werkzeug middleware tarafından gönderilen birkaç Flask örnekleri ile karmaşık bir flask uygulaması var. Ve bu durumda, aslında url_for ile değil, flask içerik yönetimi ile ilgili iki sorum var.url_for

1) Bir uygulamadan diğerine nasıl url oluştururum?

2) Ana - app_context olmadan belirli bir uygulama için nasıl url oluştururum. Örneğin, ithalat zamanında veya kereviz görevinden bazı URL'ler oluşturmanız gerekir. Ben tüm uygulama örneklerini üzerinde sarmalayıcı yapmak ve

def url_for(self, *args, **kwargs): 
    with self.app.app_context(): 
     return url_for(*args, **kwargs) 

gibi url_for yeniden tanımlamak için çalıştı ama sadece hata aşağıdaki alınan "Uygulama isteği bağımsız URL nesil için bir URL bağdaştırıcı oluşturulması mümkün değildi. Sen bunu düzeltebilirsiniz mümkün olabilir SERVER_NAME yapılandırma değişkeni ayarlanıyor. " Herhangi bir öneriniz var mı?

Güncelleme: İkinci sorun için benim çözüm sadece SERVER_NAME eklemek için gerekli, doğru, ama birincisi hala açık ben her uygulama

absolute_url_adapter = app.url_map.bind_to_environ({ 
    'wsgi.url_scheme': 'http', 
    'HTTP_HOST': app.config['SERVER_NAME'], 
    'SCRIPT_NAME': app.url_prefix, 
    'REQUEST_METHOD': 'GET', 
}) 

url_prefix için ayrılmış URL oluşturucu oluşturarak sona erdi

+1

Hiç bir çözüm buldunuz mu? –

+0

Her uygulama için özel url_builder oluşturmayı ve rotalarını kullanmayı bitirdim. Başka bir yol yok, flask çok uygulama mimarisi için hiç destek vermiyor = ( – free2use

+0

Genelleştirilmiş bir sürümü paylaşabilme şansınız var mı? –

cevap

1

- olduğu hareket memuru gönderir her uygulamada Sonra

istekleri hangi url o

absolute_url_adapter.build('main.main', force_external=True) 
gibi kullanabilirsiniz