ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用
一.ModelViewSet 路由
因为我们正在使用ViewSet
代替View
,实际上已经不再需要自己来设计URL的配置了。将资源和视图、URL绑定到一起是一个可以自动完成的过程,只需要使用Router
即可。我们需要做的就是将视图集注册到Router上去而已。
- from django.conf.urls import url
- from app01 import views
- urlpatterns = [
- #评论
- url(r'comment/$', views.CommentViewSet.as_view({
- 'get': "list",
- 'post': 'create'
- })),
- url(r'comment/(?P<pk>\d+)/$', views.CommentViewSet.as_view({
- 'get': 'retrieve',
- 'put': 'update',
- 'delete': 'destroy'
- })),
- ]
- from rest_framework.routers import DefaultRouter
- router = DefaultRouter()
- # 注册路由,表示路径comment对应视图函数CommentViewSet
- router.register(r'comment', views.CommentViewSet)
- urlpatterns += router.urls
将ViewSets注册到Routers的过程实际上类似于提供一个urlpattern。我们引入了两个参数,一个是views的URL prefix,另一个是viewset本身。
我们使用的DefaultRouter
也会自动地帮我们创建API root视图,多余路由可以注释掉了!
二.django logging配置
修改settings.py, 最后一行添加
- BASE_LOG_DIR = os.path.join(BASE_DIR, 'log')
- # 日志相关配置
- LOGGING = {
- 'version': , # 保留字段
- 'disable_existing_loggers': False, # 不要禁用已经存在的logger实例
- 'formatters': { # 定义三种日志显示的格式
- 'standard': {
- 'format': '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'
- '[%(levelname)s][%(message)s]'
- },
- 'simple': {
- 'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
- },
- 'collect': {
- 'format': '%(message)s'
- }
- },
- 'filters': { # 定义一个过滤规则
- 'require_debug_true': {
- '()': 'django.utils.log.RequireDebugTrue',
- },
- },
- 'handlers': { # 日志流的处理方式
- 'console': { # 把日志打印到终端
- 'level': 'DEBUG',
- 'filters': ['require_debug_true'], # 只有在Django debug为True时才在屏幕打印日志
- 'class': 'logging.StreamHandler',
- 'formatter': 'simple'
- },
- 'default': {
- 'level': 'INFO',
- 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
- 'filename': os.path.join(BASE_LOG_DIR, "info.log"), # 日志文件
- 'maxBytes': * * , # 日志大小 500M
- 'backupCount': , #
- 'formatter': 'standard',
- 'encoding': 'utf-8',
- },
- 'error': {
- 'level': 'ERROR',
- 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
- 'filename': os.path.join(BASE_LOG_DIR, "err.log"), # 日志文件
- 'maxBytes': * * , # 日志大小 500M
- 'backupCount': ,
- 'formatter': 'standard',
- 'encoding': 'utf-8',
- },
- 'collect': {
- 'level': 'INFO',
- 'class': 'logging.handlers.RotatingFileHandler', # 保存到文件,自动切
- 'filename': os.path.join(BASE_LOG_DIR, "collect.log"),
- 'maxBytes': * * , # 日志大小 500M
- 'backupCount': ,
- 'formatter': 'collect',
- 'encoding': "utf-8"
- }
- },
- 'loggers': {
- # 默认的logger应用如下配置
- '': {
- 'handlers': ['default', 'console', 'error'], # 上线之后可以把'console'移除
- 'level': 'DEBUG',
- 'propagate': True, # 是否向父级logger实例传递日志信息
- },
- # 名为 'collect'的logger还单独处理
- 'collect': {
- 'handlers': ['console', 'collect'],
- 'level': 'INFO',
- }
- },
- }
注意要手动创建log目录,目录里面创建3个文件err.log,info.log,collect.log
使用
在视图函数中使用时, 先导入模块, 并声明变量
- import logging
- # 生成一个以当前文件名为名字的 logger实例
- logger = logging.getLogger(__name__)
- # 生成一个名字为collect的日志实例
- collect_logger = logging.getLogger('collect')
然后在逻辑代码中加入
- logger.warning('找不到记录...')
- 或者
- collect_logger.info(name)
Python logger流示图
三.django-debug-toolbar使用指南
安装
- pip3 install django-debug-toolbar
配置
1.在settings.py中 将debug_toolbar添加到INSTALL_APPS 中,最后一行添加
- INSTALLED_APPS = [
- …
- 'debug_toolbar',
- ]
2.urls.py中
- from django.conf import settings
- from django.conf.urls import include, url
- if settings.DEBUG:
- import debug_toolbar
- urlpatterns = [
- url(r'^__debug__/', include(debug_toolbar.urls)),
- ] + urlpatterns
3.在settings.py中间件中加入DebugToolbarMiddleware,最后一行添加
- MIDDLEWARE = [
- # ...
- 'debug_toolbar.middleware.DebugToolbarMiddleware',
- ]
4.如果是本机调试,还在将127.0.0.1加入 INTERNAL_IPS
在settings.py中加入以下配置项:
- INTERNAL_IPS = ['127.0.0.1', ]
5. 配置jQuery的URL
django-debug-toolbar 默认使用的是Google的地址,默认配置如下:
- JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'
国内用不了的话可以在settings.py中配置一下,例如(我这里特意选用了和原作者相同版本的jQuery):
修改settings.py,最后一行添加
- DEBUG_TOOLBAR_CONFIG = {
- "JQUERY_URL": '//cdn.bootcss.com/jquery/2.2.4/jquery.min.js',
- }
或者你如果在Django项目中使用了jquery的话就可以直接将这一项置为空,那么django-debug-toolbar 就会使用你项目中用到的jquery:
- DEBUG_TOOLBAR_CONFIG = {
- "JQUERY_URL": '',
- }
使用
访问具体路径的时候在页面右侧有各项配置面板,点击即可查看各种调试信息。
ModelViewSet 路由 / django logging配置 / django-debug-toolbar使用的更多相关文章
- python 全栈开发,Day96(Django REST framework 视图,django logging配置,django-debug-toolbar使用指南)
昨日内容回顾 1. Serializer(序列化) 1. ORM对应的query_set和ORM对象转换成JSON格式的数据 1. 在序列化类中定义自定义的字段:SerializerMethodFie ...
- 第十三篇Django Logging配置样例
第十三篇Django Logging配置样例 阅读目录(Content) Django 日志配置模板 官方链接 Django Logging Django 日志配置模板 LOGGING = { 've ...
- Django—logging配置
我写Django项目常用的logging配置. # Django的日志配置项 BASE_LOG_DIR = os.path.join(BASE_DIR, "log") LOGGIN ...
- Django logging配置
1,在项目下建个文件夹 log 2,在django的setting的配置下添加路径 BASE_LOG_DIR = os.path.join(BASE_DIR, "log&quo ...
- python3-开发进阶Django-debug-toolbar的配置和Django logging的配置
阅读目录 django-debug-toolbar的配置 Django logging的配置 一.django-debug-toolbar的配置 1.介绍 django-debug-toolbar 是 ...
- Django - 常用配置
一.logging配置 Django项目常用的logging配置 settings.py LOGGING = { 'version': 1, 'disable_existing_loggers': F ...
- django-debug-toolbar和Django 日志配置
django-debug-toolbar介绍 django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息. gith ...
- Django logging模块
一.Django logging配置 1.在setting.py中配置 # 日志文件存放路径 BASE_LOG_DIR = os.path.join(BASE_DIR, "log" ...
- Django中配置用Redis做缓存和session
django-redis文档: http://django-redis-chs.readthedocs.io/zh_CN/latest/# 一.在Django中配置 # Django的缓存配置 CAC ...
随机推荐
- 照葫芦画瓢系列之Java --- Maven的配置
一.Maven仓库分类 Maven中,仓库只分为两类:本地仓库和远程仓库.当Maven根据坐标寻找构件的时候,它首先去查看本地仓库,如果本地仓库有此构件,则直接使用,如果本地仓库不存在此构件,或者需要 ...
- Spring的原理性总结
一.Bean的生命过程 Bean的生命过程可以借鉴Servlet的生命过程,了解其生命过程对于不管是思想还是以后的使用都很有帮助: Bean可以通过两种方式进行加载,分别是使用BeanFactory ...
- 初见jQuery EasyUI
本文通过一个简单的小例子,简述jQuery EasyUI的使用方法,仅供学习分享使用,如有不足之处,还请指正. 什么是jQuery EasyUI ? 引用官网的一句话:jQuery EasyUI fr ...
- ajax简单登录(踩过的坑)
登陆页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
- unity修改脚本的图标
我们看别人代码时有时看到人家的脚本显示的不是unity的默认图标,而是自己的logo.如: 这样看上去感觉很专业有没有. 修改方法: 1 在Project窗口中点击选中脚本,在Inspector界面点 ...
- 关于一体机外卖单不打印外卖单号FAQ(适用正餐6.0.09,轻餐4.0.6.1,轻餐4.0.6.2)
适用情景:升级版本后打印机打印出的外卖小票不出现外卖单号. 解决方案:设置-功能设置-小票设置-小票自定义-前台小票-外卖订单-------选择编辑,选中右侧中外卖单号或者外卖订单编号,点击保存即可. ...
- Redis常用命令【字符串】
1.启动Redis客户端 进入src目录下,执行:redis-cli启动Redis客户端 2.help 帮助 帮助命令,用来查看redis命令的使用方式 3.set 设置 3.1设置 3.2不存在才设 ...
- Spark SQL整体架构
0.整体架构 注意:Spark SQL是Spark Core之上的一个模块,所有SQL操作最终都通过Catalyst翻译成类似的Spark程序代码被Spark Core调度执行,其过程也有Job.St ...
- Java中线程的同步问题
在生活中我们时常会遇到同步的问题,而且大多数的实际问题都是线程的同步问题 我这里以生活中的火车售票来进行举例: 假设现在我们总共有1000张票要进行出售,共有10个出售点,那么当售票到最后只有一张票时 ...
- 数据挖掘---Matplotib的学习
什么是matplotlib mat - matrix 矩阵 二维数据 - 二维图表 plot - 画图 lib - libra ...