在 Django Web 应用程序中,为用户提供自己的子域可以通过以下几个步骤实现:
settings.py
文件中,将 ALLOWED_HOSTS
设置为允许的子域名列表。例如:ALLOWED_HOSTS = ['*.example.com']
这将允许所有以 example.com
为顶级域名的子域名访问该 Django 应用。
subdomain
参数来匹配子域名。例如:from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
在视图函数 views.index
中,可以通过 request
对象的 subdomain
属性获取当前请求的子域名:
def index(request):
subdomain = request.subdomain
# 在这里处理子域名相关的逻辑
return HttpResponse('Hello, world!')
server {
listen 80;
server_name *.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
这将将所有子域名的请求代理到本地的 8000 端口上。
总之,通过配置 Django 项目和 Web 服务器,可以为用户提供自己的子域名。
领取专属 10元无门槛券
手把手带您无忧上云