Django 搭建单服务实现多域名访问

将这两个不同的项目部署到同一个服务里面,然后使用不同的域名来访问不同的项目。Django默认的只支持单服务访问,要想实现不同域名,需要安装django的第三方扩展包:django-hosts。

1、环境搭建:applite_web

conda create --name applite_web

创建完虚拟环境applite_web了,现在需要下载一些依赖包。这里只需要单独安装django与django-hosts即可。

pip install django  
pip install django-hosts
pip install uwsgi

2、创建项目:applite_web

django-admin.py startproject applite_web

3、创建app

# 这里创建4个app.
# app_1、app_2: 是用来匹配applite_web文件下,hosts.py文件分发的url
 相当django原有的一级url.
# app_1_demo、app_2_demo: 是用来定义自己的API
创建app_1:  django manage.py startapp app_1
创建app_2:  django manage.py startapp app_2
创建app_1_demo:  django manage.py startapp app_1_demo
创建app_2_demo: django manage.py startapp app_2_demo

说明2点:

    1)、根据项目的需要,将原来Django项目结构做了调整

    2)、至于创建4个app的用法后边会具体涉及到

 

下面截图是创建本文Demo项目结构,当然这也是比较简单的一个项目结构,实际项目开发中,还需要配置别的参数与文件。

2. 在applite_web中配置django-hosts

创建好虚拟环境和项目之后,接下来重点就是在django中配置多域名。为了方便起见,本文只演示2个域名,多个域名按照2个域名的方式增加就行。

 

1、首先在settins.py同级增加一个hosts.py文件,配置如下:

from django_hosts import patterns, host

host_patterns = patterns(
       host(r'app1', 'app_1.urls', name='app1'),
       host(r'app2', 'app_2.urls', name='app2'),
          )

2、然后在django的settings配置文件增加3处配置:

  •  在INSTALLED_APPS中增加下面几个

  • INSTALLED_APPS = [
       "django_hosts",
       'app_1',
       'app_2',
       "app_1_demo",
       "app_2_demo",
    ]

     

  • 需要在 MIDDLEWARE 的首行和末行增加2行配置

  • MIDDLEWARE = [
       '
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值