【问题标题】:How to create custom subdomains for each unique username in django?如何为 django 中的每个唯一用户名创建自定义子域?
【发布时间】:2015-08-24 20:27:48
【问题描述】:

我一直在寻找一个完美的解决方案来为每个用户创建自定义子域,就像 word press 为 Django 中的博客所做的那样。

问题是谷歌搜索结果前 4 页上的所有解决方案都已过时。

我正在使用 apache、heroku、windows7。 我已经做了设置的DNS管理(通配符设置)

*.domainname.com   

 appname.herokuapp.com

文档链接或分步教程会很有帮助。

谢谢大家,喜欢stackoverflow。 1000 万个问题。

附:我是n00b,请简单解释一下settings.py、urls.py、admin.py、models.py、views.py所需的代码

(或链接(对不起!谷歌没有提供帮助))

【问题讨论】:

    标签: django apache django-models django-admin subdomain


    【解决方案1】:

    我不知道您的意思是哪个解决方案已过时,但我使用的是django-subdomains

    阅读文档中的快速入门和基本用法,我想你会明白发生了什么。

    我使用的快速设置(与文档中的完全相同)

    #settings.py
    ROOT_URLCONF = 'myproject.urls.account'
    
    
    SUBDOMAIN_URLCONFS = {
        None: 'myproject.urls.frontend',  # no subdomain, e.g. ``example.com``
        'www': 'myproject.urls.frontend',
        'api': 'myproject.urls.api',
    }
    

    myproject.urls.account 中,您将主页网址映射为类似的东西

    url(r'^$','user_view',name='userview'),
    

    当访问者提示username.domain.com 时,django 会将他重定向到user_view 中定义的myproject.urls.account

    在您的user_view 中,您可以执行以下操作:

    def user_view(request):
    profile = Profiles.objects.get(username = request.subdomain)
    ....
    

    注意:这不是唯一可能的配置。阅读文档了解更多信息。

    【讨论】:

    • 我不确定你把那个线程链接到我有什么意义:) @teilo 的答案是正确的,但我看不出编写自己的中间件有什么好处。当我需要每个配置文件的子域时,我会提醒类似的解决方案,但我发现 django-subdomains 是一个很棒的库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-25
    • 2010-09-16
    • 2010-12-20
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多