我的烧瓶应用程序如何为我的用户自动创建子域?

how can my flask app create a subdomain automatically for my user?

我已经构建了一个供餐厅使用的 Flask 应用程序,我想知道当他们在我们的登录页面上注册帐户时,如何让该应用程序为每个餐厅提供一个子域和自己的数据库。

这个问题听起来更像是关于域名系统而不是 Flask。

您是说您的服务器将启动 运行,然后几天或几周后,新客户端将注册一些新的 restaurant_name,例如"spicytacos"。您想要在域名系统中创建一个新的 spicytacos.example.com FQDN,A 或 AAAA 记录指向您的网络服务器。然后你的 Flask 应用程序将能够识别 request.args 中的餐厅名称并做出适当的响应。

如果您是 运行 example.com 使用 BIND9 或类似工具的主要名称服务器,那么只需重写区域配置文件并发送 HUP 信号即可。

如果您希望让其他公司处理名称服务细节,那么 * 通配符记录可能是您最好的选择。它应该是指向您的服务器的 CNAME 或地址记录。

中间路径是使用 DDNS(动态 DNS)服务,可能来自 afraid.org 或无 IP。这是将 FQDN 绑定到地址的另一种方法,可以让您获得更多控制权。

请参阅How to create dynamic subdomains in a Flask application以了解@app.before_request如何在请求路由期间解析出新的主机名。