python - django中如何共用数据库与不同app绑定不同域名?

查看:114
本文介绍了python - django中如何共用数据库与不同app绑定不同域名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我有个网站要给做个手机站点,数据库肯定是用现在的app的,而且url的规则也是一样,但是模板不能一样但是问题来了:

因为手机域名是跟电脑是不一样的简单来说就是二级域名,比如电脑是这样www.baidu.com
那么手机站域名就是这样
m.Baidu.com

我的思路是这样的,建立一个新的app,然后url规则,和modles都引用电脑站,然后视图用自己的这样可以吗?
不过就算可以,那如何实战不同app绑定不同域名?

又或则我有一个奇葩的需求,就是不同的django工程用的是同一个数据库呢?

解决方案

既然你的URL都不变,那么你完全不用重新建一个app的,在原来的app上做自动选择模版,比较简单的,CBV就是让你使劲复用的啊。
来先定义一个BaseView:

class BaseView(View):
    @property
    def ismobile(self):
        # 开发的时候你可以直接返回True或者False来调整不同的模版
        return 'm.maidu.com' in self.request.get_host()
    
    def render(self, request, templ_name, context):
        if self.ismobile:
            templ_name = 'mobile/%s'%templ_name
        return render(request, templ_name, context)

后面的其他View都都从这里继承,渲染模版直接用self.render就行了,其它东西都不用变,在templates下面新建mobile文件夹,再重写一套模版就行了。

这篇关于python - django中如何共用数据库与不同app绑定不同域名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆