Django子域名

thu*_*ief 6 python django e-commerce

我正在尝试制作一个基本的商店应用程序.我已经建立了一个数据库,以便每个产品都与特定商店绑定:让我们称之为商店鞋子,玩具和书籍..我需要为应用程序设置子域名(它在分配规范中,没有选择)这样我就可以映射到shoes.myapp.com,toys.myapp.com和books.myapp.com.我认为我需要做的是以某种方式设置子域名(我已经用谷歌搜索了但是我很困惑:这是要走的路吗?)然后,我想,从子域中的信息过滤我的数据库,这样只有例如,商店名称为"Shoes"的商品会显示在页面上.我是在哪里接近正确的轨道还是有更好的方法来构建它?

sil*_*ojr 3

我建议您使用这个应用程序:django-subdomains。http://django-subdomains.readthedocs.org/en/latest/index.html

然后,在您的 settings.py 中,您应该使用:

SUBDOMAIN_URLCONF = {
    'toys': 'yourproject.urls.toys',
    'shoes': 'yourproject.urls.shoes'
(...)
}
Run Code Online (Sandbox Code Playgroud)

如果您需要在视图中使用子域的名称,它将附加到请求对象:

def your_view(request):
    subdomain = request.subdomain
    products = Products.objects.filter(store=subdomain) #an example how to use it to specif database queries. I dont know how your models are
Run Code Online (Sandbox Code Playgroud)

  • 如果您的所有应用程序的行为相同,您可以将商店全部映射在一起并处理每个子域,就像我的示例视图中一样。我不明白为什么这不是Pythonic。 (2认同)