带有Flask的子域名?

时间:2014-01-27 18:39:50

标签: python web flask

如何使用Flask为我的网站实施子域名?

文档尽管非常好,但对此并不是很清楚。 子域名不需要是动态的,我只会使用我自己选择的2或3。

我如何路线?是否有可能以正常方式测试它们? (由Flask在当地提供)

1 个答案:

答案 0 :(得分:15)

如果您只想处理特定子域下的特定端点,则可以use the subdomain @route的参数:

app = Flask(__name__)
# In Flask 1.0
# app = Flask(__name__, subdomain_matching=True)

# Must add this until Flask 1.0
# Must be host:port pair or will not work
app.config["SERVER_NAME"] = "local.dev:5000"

@app.route("/")
def home():
    return "Sweet home"

@app.route("/some-route")
def some_route():
    return "on the default subdomain (generally, www, or unguarded)"

@app.route("/", subdomain="blog")
def blog_home():
    return "Sweet blog"

@app.route("/<page>", subdomain="blog")
def blog_page(page):
    return "can be dynamic: {}".format(page)

要在本地处理开发,您需要在hosts文件中创建条目,将这些不同的域指向您的计算机:

local.dev    127.0.0.1
blog.local.dev    127.0.0.1

然后,您可以使用local.devblog.local.dev而不是localhost来查看您的工作。