前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django使用local_settings.py实现本地个性化配置(网上互抄教程修正)

Django使用local_settings.py实现本地个性化配置(网上互抄教程修正)

作者头像
ZNing
发布2021-09-24 10:59:47
6770
发布2021-09-24 10:59:47
举报
文章被收录于专栏:ZNing·腾创库ZNing·腾创库
本文字数: 700字

阅读时间: 3分钟

在Java开发的时候,我们都知道可以通过本地application.properties或者application.xml并可通过一些优先级设置,将远程配置中心的配置项,用我们本地的文件进行覆盖,以方便本地的开发和调试,并可以通过.gitignore控制防止提交到远程仓库。在Django内,其实也有这样的方法能够做这个事儿,那就是使用local_settings.py。在Django的.gitignore模板文件里面,对于这个文件是默认存在的,也就会在Git提交时无须担心其提交到远程仓库。

其实这玩意儿不是那么难理解,但是我今天在网上搜索相关资料的时候,发现有现有的教程都是同一篇互相抄,抄的源头也被我找到了是Stack Overflow,而且代码是有问题的。这篇文章其实主要是修正下网上的错误,以正视听。

我的开发环境:

MacBook Pro (13-inch, 2020) / PyCharm 2021.1 / Python 3.9 / Django 3.2.5

首先,在你工程的settings.py的结尾处添加如下代码:

代码语言:javascript
复制
try:
    from .local_settings import *
except ImportError:
    pass

就是这个代码,网上互抄的全部都不行无法执行,错在了local_settings前面的.没了……

这个代码的意义就在于尝试读取是否有local_settings.py这个文件,如果有的话,且在settings.py读入有问题时则读入覆盖配置。

然后,在你的settings.py的文件夹下新建local_settings.py,然后放置需要覆盖的参数即可,例如我的工程放置的如下:

代码语言:javascript
复制
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

DEBUG = True

ALLOWED_HOSTS = ['*']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'db',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    },
    'lite': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

好了,就这么简单。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 慧响 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档