在Web应用程序(瓶)动态子域处理[关闭](Dynamic Subdomain Handling i

2019-06-25 11:10发布

我将使用瓶来创建Web应用程序和应用程序的一部分将涉及一个子域(例如,user1.appname.org)。

我不知道如何去烧瓶内配置动态创建这些子域,或如何将它们部署到生产服务器。

什么是这样做的最佳方式?

Answer 1:

所有瓶的路由结构支持的subdomain关键字参数(这包括路线变量支持)。

@app.route("/", subdomain="static")
def static_index():
    """Flask supports static subdomains
    This is available at static.your-domain.tld"""
    return "static.your-domain.tld"

@app.route("/dynamic", subdomain="<username>")
def username_index(username):
    """Dynamic subdomains are also supported
    Try going to user1.your-domain.tld/dynamic"""
    return username + ".your-domain.tld"


Answer 2:

为了补充肖恩维埃拉的帖子,你还需要设置SERVER_NAME配置变量。

文档: http://flask.pocoo.org/docs/config/#SERVER_NAME

该名和端口号的服务器。 所需的子域的支持(如:“myapp.dev:5000”)请注意,本地主机不支持这样子域名设置此为“localhost”没有帮助。 设置SERVER_NAME也默认启用URL生成没有请求上下文,但与应用程序上下文。

在本地测试,你需要将条目添加到您的hosts文件,如下所示:

127.0.0.1       cvshark.local
127.0.0.1       robert.cvshark.local
127.0.0.1       www.cvshark.local


文章来源: Dynamic Subdomain Handling in a Web App (Flask) [closed]