【发布时间】:2013-05-24 01:56:45
【问题描述】:
我正在尝试在 Flask 应用程序中设置可变路由处理,例如此答案中所述:Dynamic Subdomain Handling in a Web App (Flask)
但是,我希望能够在某些子域被可变路由捕获之前识别它们,这样我就可以使用 flask-restful api 扩展 (Routing with RESTful)。
例如,我尝试了以下方法:
@app.route('/', subdomain="<user>", defaults={'path':''})
@app.route('/<path:path>', subdomain="<user>")
def user_profile(user,path):
pass
class Api(restful.Resource):
def get(self):
#Do Api things.
api.add_resource(Api, '/v1', subdomain="api")
当我对此进行测试时,所有 URL 都会转到变量路由处理程序并调用 user_prof()。我尝试将 api 路由放在第一位,将标准 @app.route 规则放在第二位,反之亦然,但没有任何变化。
我是否遗漏了一些其他参数或需要在 Flask 中更深入地实现这一点?
更新:
我尝试匹配的 URL 模式是这样的:
user1.mysite.com -> handled by user_profile()
user2.mysite.com -> handled by user_profile()
any_future_string.mysite.com -> handled by user_profile()
api.mysite.com/v1 -> handled by Api class
其他情况包括:
www.mysite.com -> handled by index_display()
mysite.com -> handled by index_display()
【问题讨论】:
标签: python heroku routes flask url-routing