django1.11 mysql配置_Django-1.11.11Setting文件配置简记

对于通常Django工程的配置中,创建出来的源目录结构远远不能胜任实际项目中开发的需求,故而需要自己配置目录结构,以下为个人学习简记

1、首先往往是需要去修改setting文件的路径,一般是在对应的工程代码文件夹下,如图

fa9567d01a1b

image.png

2、改变了文件路径故需要去确认BASE_DIR 的路径是否正确

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

此段代码中:

__file__得到当前文件文件名字

os.path.abspath(__file__)得到当前文件的绝对路径

os.path.dirname(os.path.abspath(__file__)))得到当前文件的上一层的文件夹路径

os.path.dirname(os.path.dirname(os.path.abspath(__file__))))得到当前文件的上一次文件夹的上一层

BASE_DIR就是manage.py文件的所在路径

除此之外,修改了Setting.py文件还需要修改manage.py里面的默认环境配置,修改为现在的路径

fa9567d01a1b

image.png

3、一般来说app应用需统一存放到单独的app文件夹里面,相应的也需要配置

sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

sys.path包含了python解释器导包路径

fa9567d01a1b

image.png

然后INSTALLED_APPS里面添加app的相对路径即可

4、接下来是设置后端数据库,不通的数据库引擎不一样,MySql一般配置如下

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'meiduo',

'USER': 'meiduo',

'PASSWORD': 'password',

'HOST': '192.168.47.128',

'PORT': '3306',

}

}

ENGINE为要使用的数据库后端。内置的数据库后端是:

'django.db.backends.postgresql'

'django.db.backends.mysql'

'django.db.backends.sqlite3'

'django.db.backends.oracle'

5、后端缓存Redis配置,除default外可添加多项

CACHE = {

'default': {

'BACKEND': 'django_redis.cache.RedisCache',

'LOCATION': ['redis://192.168.47.128:6379/0'],

'OPTIONS': {

'CLIENT_CLASS': 'django_redis.client.DefaultClient',

'CONNECTTON_POOL_KWARGS': {'max_connections': 128},

},

},

}

6、关于LOGGING

Python日志记录配置由四部分组成:

Logger 记录仪

Handler 处理程序

Filters 过滤器

Formaters 格式化程序

记录器

是记录系统的入口点,可以将消息写入其中以进行处理,写入记录器的每条消息都是一个日志记录,记录器确定需要处理消息后,会将其传递给Handler

记录器配置为具有日志级别。此日志级别描述了记录器将处理的消息的严重性。Python定义了以下日志级别:

DEBUG:用于调试目的的底层系统信息

INFO:一般系统信息

WARNING:描述已发生的小问题的信息

ERROR:描述已发生的主要问题的信息

CRITICAL:描述已发生的严重问题的信息

处理程序

处理程序是确定记录器中每个消息发生什么情况的引擎。它描述了特定的日志记录行为,例如将消息写到屏幕,文件或网络套接字。

像记录器一样,处理程序也具有日志级别。如果日志记录的日志级别不满足或超过处理程序的级别,则处理程序将忽略该消息。

一个记录器可以具有多个处理程序,并且每个处理程序可以具有不同的日志级别。这样,可以根据消息的重要性提供不同形式的通知。

过滤器

用于提供其他控制,以控制哪些日志记录从记录器传递到处理程序。

过滤器还可以用于在发出之前修改日志记录。例如,您可以编写一个过滤器,以将ERROR日志记录降级 WARNING为满足特定条件的记录。

过滤器可以安装在记录器或处理程序上;链中可以使用多个过滤器来执行多个过滤操作。

格式化

最终,日志记录需要呈现为文本。格式器描述了该文本的确切格式

以下是相当复杂的日志记录设置的示例

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'formatters': {

'verbose': {

'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'

},

'simple': {

'format': '%(levelname)s %(message)s'

},

},

'filters': {

'special': {

'()': 'project.logging.SpecialFilter',

'foo': 'bar',

},

'require_debug_true': {

'()': 'django.utils.log.RequireDebugTrue',

},

},

'handlers': {

'console': {

'level': 'INFO',

'filters': ['require_debug_true'],

'class': 'logging.StreamHandler',

'formatter': 'simple'

},

'mail_admins': {

'level': 'ERROR',

'class': 'django.utils.log.AdminEmailHandler',

'filters': ['special']

}

},

'loggers': {

'django': {

'handlers': ['console'],

'propagate': True,

},

'django.request': {

'handlers': ['mail_admins'],

'level': 'ERROR',

'propagate': False,

},

'myproject.custom': {

'handlers': ['console', 'mail_admins'],

'level': 'INFO',

'filters': ['special']

}

}

}

日志的使用

# import the logging library

import logging

# Get an instance of a logger

logger = logging.getLogger(__name__)

def my_view(request, arg1, arg):

...

if bad_mojo:

# Log an error message

logger.error('Something went wrong!')

命名记录器

按照约定,记录器名称通常为name,其中包含记录器的python模块的名称。这使您可以按模块过滤和处理日志记录调用。但是,如果您采用其他方式来组织日志记录消息,则可以提供任何用点号分隔的名称来标识记录器

# Get an instance of a specific named logger

logger = logging.getLogger('project.interesting.stuff')

日志调用

记录器实例包含每个默认日志级别的输入方法:

logger.debug()

logger.info()

logger.warning()

logger.error()

logger.critical()

还有其他两个日志记录调用:

logger.log():手动发出具有特定日志级别的日志消息。

logger.exception():创建ERROR包装当前异常堆栈框架的级别日志记录消息。

这是一个简单的配置,它将记录器的所有日志记录写入本地文件

LOGGING = {

'version': 1,

'disable_existing_loggers': False,

'handlers': {

'file': {

'level': 'DEBUG',

'class': 'logging.FileHandler',

'filename': '/path/to/django/debug.log',

},

},

'loggers': {

'django': {

'handlers': ['file'],

'level': 'DEBUG',

'propagate': True,

},

},

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值