将这两个不同的项目部署到同一个服务里面,然后使用不同的域名来访问不同的项目。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 = [ '