使用场景:

Django中有两个app,如果通过域名来访问,可以使用www.domain.com/a、www.domain.com/b来访问。这样就显得有点LowB了。如果我想通过a.domain.com、b.domain.com来访问两个app怎办?

请使用django-host来实现。

1、安装django-host 插件

pip install django-host

2、修改django配置 settings.py

1.在 INSTALLED_APP 中注册 'django-host' 应用

2.在 MIDDLEWARE 配置项的开始位置,添加 'django_hosts.middleware.HostsRequestMiddleware'

3.在 MIDDLEWARE 配置项的结束位置,加'django_hosts.middleware.HostsRequestMiddleware'

4.在 settings.py 文件同目录下创建 host.py 文件,添加如下内容:
from django_hosts import patterns, host
from django.conf import settings from APP1 import views
from APP2 import views host_patterns = patterns('',
host(r'app1', 'APP1.urls', name='APP1'),
host(r'app2', 'APP2.urls', name='APP2'),
) 5.修改 settings.py 文件,在 ROOT_URLCONF 配置项之后增加 ROOT_HOSTCONF = '项目目录名.host' #注意,不是app的名字 6.修改 settings.py 文件,在ROOT_HOSTCONF 配置项之后增加 DEFAULT_HOST = 'app1' #设置一个默认的域名,在没有匹配到所请求的域名时,默认返回这个。 7.在每个app下创建自己的urls.py

由于线上使用的Nginx+Uwsgi的环境,顺便贴一下Nginx和Uwsgi的配置

Nginx的配置如下:

a.domain.com配置

  server {
listen 80;
server_name a.domain.com;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_param UWSGI_SCRIPT web.wsgi;
} location /static {
alias /data/local/app/app1/static;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

b.domain.com配置

server {
listen 80;
server_name b.domain.com; #charset koi8-r; access_log logs/app2.access.log main;
error_log logs/app2.error.log info; location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_param UWSGI_SCRIPT web.wsgi;
uwsgi_read_timeout 20;
} #location /static {
# alias /data/local/app/blog/web/WeChatAPI/static;
#}
}

Uwsgi的配置如下:

[uwsgi]

socket = :8000
chdir = /data/local/app/
#module = web.wsgi:app1
wsgi-file = web/wsgi.py
master = true
processes = 1
pidfile = /tmp/web-master.pid
daemonize = /var/log/uwsgi/app1.log

参考:http://blog.csdn.net/sinat_21302587/article/details/74017312

django-hsot github地址:https://github.com/jazzband/django-hosts

Django多域名配置之Django-hosts插件的使用的更多相关文章

  1. django的命令, 配置,以及django使用mysql的流程

    1.Django的命令: 下载 pip install django==1.11.16 pip install django==1.11.16 -i 源 创建项目 django-admin start ...

  2. Django静态文件配置-request方法-ORM简介-字段的增删改查

    app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...

  3. 73、django之setting配置汇总

    前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总. setting配置汇总 1.app路径 INSTALLED_APPS = [ 'django.co ...

  4. django之setting配置汇总

    前面的随笔中我们经常会改setting配置也经常将一些配置混淆今天主要是将一些常见的配置做一个汇总. setting配置汇总 1.app路径 INSTALLED_APPS = [ 'django.co ...

  5. django之基本配置

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  6. django之session配置

    session应用示例 from django.shortcuts import render from django.shortcuts import HttpResponse from djang ...

  7. Django + Apache + wsgi配置和环境搭建(ubuntu)

    上一篇写了Django + nginx + uwsgi配置和环境搭建(ubuntu) 由于公司服务器环境问题,又配置了apache的环境.记录例如以下: 一. 安装环境: #apache sudo a ...

  8. Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基础文件配置,Web框架的本质,服务器程序和应用程序(wsgiref服务端模块,jinja2模板渲染模块)的使用

    Django---Http协议简述和原理,HTTP请求码,HTTP请求格式和响应格式(重点),Django的安装与使用,Django项目的创建和运行(cmd和pycharm两种模式),Django的基 ...

  9. python - Django 跨域配置

    一:settings 中间件配置路径 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.s ...

随机推荐

  1. ADC转换的分辨率

    分辨率是指ADC能够分辨量化的最小信号的能力.分辨率用二进制位数表示.例如对一个10位的ADC,其所能分辨的最小量化电平为参考电平(满量程)的2的10次方分之一.也就是说分辨率越高,就能把满量程里的电 ...

  2. [转帖]VBS 教程

    VBS教程 http://www.cnblogs.com/veggiegfei/p/5943260.html 原作者真牛B 网上找了好多 没找到 没想到整理的这么好, 转来学习一下 改天打印出来. V ...

  3. 通过几个例子看sed的模式空间与保持空间

    SED之所以能以行为单位的编辑或修改文本,其原因在于它使用了两个空间:一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(holdingspace)这2个空间的使 ...

  4. matplotlib绘图

    fig = plt.figure() ax=plt.gca() timeList = np.array(timeList) timeList=timeList*100 timeList1 = np.a ...

  5. gitbook 简单使用

    gitbook 简单使用 之前由于公司培训过使用 gitbook,当时也没有进行安装使用.当时就感觉就是 markdown 语法,加上我本来就是使用 markdown 进行写博客之类.再加上这个东西本 ...

  6. 线性代数的本质与几何意义 02. 线性组合、张成的空间、基(3blue1brown 咪博士 图文注解版)

    1. 线性组合 接下来我们要换一个角度来看向量.以二维平面直角坐标系为例,i, j 分别是沿 2 个坐标轴方向的单位向量.那么坐标平面上的其他向量,例如 [ 3  -2 ] [3−与 i, j 是什么 ...

  7. FFT ip core

    The FFT core provides four architecture options to offer a trade-off权衡取舍 between core size andtransf ...

  8. 如何在Anaconda中实现多版本python共存

    anaconda中Python版本是3.5,因为爬虫原因,需要Python2.7版本,因此,希望能在anaconda中Python3和Python2共存. 1. 打开Anaconda Prompt,可 ...

  9. ansible系列3-pyYAML

    规则一:缩进 yaml使用一个固定的缩进风格表示数据层结构关系,Saltstack需要每个缩进级别由两个空格组成.一定不能使用tab键 注意:编写yaml文件,就忘记键盘有tab 规则二:冒号 CMD ...

  10. BZOJ3729Gty的游戏——阶梯博弈+巴什博弈+非旋转treap(平衡树动态维护dfs序)

    题目描述 某一天gty在与他的妹子玩游戏.妹子提出一个游戏,给定一棵有根树,每个节点有一些石子,每次可以将不多于L的石子移动到父节点,询问将某个节点的子树中的石子移动到这个节点先手是否有必胜策略.gt ...