七、DRF中的router路由及loggin模块
创建SimpleRouter路由对象
# router = routers.SimpleRouter()
# 使用DefaultRouter,会自动创建根路由页面
router = routers.DefaultRouter()
注册路由
# 第一个参数为路由前缀(支持正则),一般添加为应用名即可
# 第二个参数为视图集类(只有继承ViewSet才能支持router)
# 第三个参数指定url别名前缀,一般不需要指定
router.register(r'projects', views.ProjectViewSet, basename="bs") # 将url添加到urlpatterns中,因为urlpatterns和router.urls都是列表,可以相加 urlpatterns += router.urls。
日志模块
在文件中导入loggin模块,然后创建logging = logging.getLogger("test")日志器对象,test为日志器的名称
LOGGING = { # 当前日志的版本号 'version': 1, # 是否禁用其他的日志处理器,如果有其他日志处理器时使用 'disable_existing_loggers': False, # 指定日志的显示格式 'formatters': { 'verbose': { # 详细的日志 'format': '%(asctime)s - [%(levelname)s] - %(name)s - [msg]%(message)s - [%(filename)s:%(lineno)d ]' }, 'simple': { # 简化版的日志 'format': '%(asctime)s - [%(levelname)s] - [msg]%(message)s' }, }, # 日志过滤 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, # 日志的输出渠道 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', # 在console中输入简化版的日志 'formatter': 'simple' }, 'file': { 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', # 日志文件的位置 'filename': os.path.join(BASE_DIR, "logs/test.log"), # 日志大小,超出会分割创建新的日志文件 'maxBytes': 100 * 1024 * 1024, # 最多10个日志文件 'backupCount': 10, #在文件中保存详细版本的日志 'formatter': 'verbose', 'encoding': 'utf-8' }, }, 'loggers': { 'test': { # 定义了一个名为test的日志器 'handlers': ['console', 'file'], 'propagate': True, 'level': 'DEBUG', # 日志器接收的最低日志级别 }, } }
浙公网安备 33010602011771号