我将使用flask创建一个Web应用程序,该应用程序的一部分将涉及一个子域(例如,user1.appname.org)。
我不确定如何在Flask配置中动态创建这些子域,或者如何将它们部署到生产服务器。
最好的方法是什么?
Flask的所有路由构造都支持subdomain关键字参数(这包括对路由变量的支持)。
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"
为了补充Sean Viera的帖子,你还需要设置SERVER_NAME配置变量。
文档:http : //flask.pocoo.org/docs/config/#SERVER_NAME
服务器的名称和端口号。需要子域支持(例如:“ myapp.dev:5000”)。请注意,本地主机不支持子域,因此将其设置为“本地主机”无济于事。默认情况下,还设置SERVER_NAME即可在没有请求上下文但有应用程序上下文的情况下生成URL。
要在本地测试,你需要向hosts文件中添加条目,如下所示:
127.0.0.1 cvshark.local 127.0.0.1 robert.cvshark.local 127.0.0.1 www.cvshark.local