博文
Django自动化测试
· ☕ 3 分钟
Django中写自动化测试可以使用:doctests或unit tests。自动化测试的逻辑是,将测试数据传入待测试函数,执行后,以输出结果与预期是否一致,作为判断测试是否通过的标准。这里有几个关键点,(1)需要测试数据,(2)需要指明待测试

Django REST Framework 权限管理
· ☕ 3 分钟
1. DRF的权限管理 Django REST Framework的权限管理包括两个部分。 一个是认证Authentication方式。指定对用户进行鉴权的方式,获取request.user。 一个是权限控制Permissions。针对Django资源、用户类别进行权限

Django 模板继承
· ☕ 3 分钟
1. 场景 在一个项目中,header、footer等元素经常被重复使用。为了避免,每个页面重写这些元素,同时,在修改时,不用去每个页面修改,需要将公共的部分抽离出来,这就是Django模板继承。 2. Django的复用模板标签 Django内建的复用

Django 装饰器
· ☕ 4 分钟
在前后端分离开发过程中,提供给前端的 API 接口,有的使用 GET 请求,有的使用 POST 请求。为了避免,后端在 views.py 的 request 中取值报错,需要在每个 view 函数中判断请求头的方法。于是,提取了一个公共的函数放在 utils.py 中,以便 view 函数引用。使用时依然繁琐,最后,在 Django 文档中找到了re

Django Snippets
· ☕ 1 分钟
1. Admin 自动注册全部 Model 字段 admin.py 1 2 3 4 5 6 7 8 9 10 # -*- coding: utf-8 -*- import inspect from django.contrib import admin from . import models for name, obj in inspect.getmembers(models): try: if inspect.isclass(obj): admin.site.register(getattr(models, name)) except Exception as e: pass 2. 获取全部 View Name 获取 Project 全部 View Name 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from django.conf import settings from django.core.urlresolvers import RegexURLResolver, RegexURLPattern root_urlconf = __import__(settings.ROOT_URLCONF) all_urlpatterns = root_urlconf.urlpatterns VIEW_NAMES = [] # maintain a global list def get_all_view_names(urlpatterns): global VIEW_NAMES for pattern in urlpatterns: if isinstance(pattern, RegexURLResolver): get_all_view_names(pattern.url_patterns) #