2014-02-23 125 views
2

在Flask网站中,我想创建一个名为gallery的蓝图,它是一个lightbox /美术馆应用程序,但它有多个实例。例如,如何将构造函数参数传递给Flask Blueprint?

app.register_blueprint(gallery,url_prefix='/photos') 
app.register_blueprint(gallery,url_prefix='/paintings') 

不过,我想画廊的两个实例拥有完全独立的内容源,所以需要蓝图一个额外的参数,即

app.register_blueprint(gallery,url_prefix='/photos',source_directory='content/photos/') 
app.register_blueprint(gallery,url_prefix='/paintings',source_directory='content/paintings/') 

如何实现这一点?或者,我可以访问什么url_prefix是在蓝图本身?

回答

0

request有几个属性可以用来获取一个Blueprint对象的url_prefix对象。

也许request.script_root就是你想要的。欲了解更多信息,推荐使用Flask documentation about request object

2

我不知道,如果瓶实现了这一切WERKZEUG做(瓶是基于WERKZEUG)路由的东西,但在WERKZEUG您可以使用any路线,像这样:

gallery = Blueprint(__name__, __name__, url_prefix='/<any("photos,paintings"):source>') 

如果您在您的意见中使用@gallery.route,您会得到一个参数source,您可以使用它来确定您的源目录。

@gallery.route('/show') 
def show(source): 
    # Show stuff based on source being "photos" or "paintings" 

不知道,在瓶的作品,但值得一试...

相关问题