通用views、编写自动化测试、static文件路径的读取
在generic的文件中有着许多通用的views类
__all__ = [
'View', 'TemplateView', 'RedirectView', 'ArchiveIndexView',
'YearArchiveView', 'MonthArchiveView', 'WeekArchiveView', 'DayArchiveView',
'TodayArchiveView', 'DateDetailView', 'DetailView', 'FormView',
'CreateView', 'UpdateView', 'DeleteView', 'ListView', 'GenericViewError',
]
关于内置的通用类视图api列表详解
保证你的每一个模型和每一个视图都有单独的TestCase
针对你不同的条件编写测试方法
描述对应的测试方法的功能
那么如何编写Django的自动化测试的脚本呢?
上图是django文档中的示例,编写的自动化测试脚本应该满足以下条件:
1.必须继承django.test.TestCase,是属于它的子类,在你执行测试脚本的时候,django会去寻找属于TestCase子类的对象
2.测试的方法都必须以‘’test‘’开头,找到子类后就会寻找对应的前缀带test字样的方法
3.在方法内编写你的测试逻辑即可
4.最后用命令启动自动化测试脚本 python manage.py test app_name
self.assertIs :更多有关于TestCase的方法工具
对视图函数(view)编写自动化测试脚本:
from django.test.utils import setup_test_environment
setup_test_environment() <= 该操作仅限于使用shell的环境测试你的app,如果是在test.py中编写的自动化脚本就不需要加载该环境
遇到该问题是就是你没有执行setup_test_environment()
可以通过from django.client import Client 创建一个客户端,模拟是一个浏览器用户
client = Client() 实例化对象后,可以通过不同的请求方式,向你的url发出请求,观察HttpResponse的状态和属性
static文件的查询是通过 setttings.py/STATICFILES_FINDERS 这个变量内的两个查找类实现的
from django.contrib.staticfiles.finders import FileSystemFinder,AppDirectoriesFinder
一个是FileSystemFinder ,另一个是AppDirectoriesFinder
FileSystemFinder:通过FileSystemFinder会去settings.py/STATICFILES_DIRS指向的路径下寻找static文件,如果没有找到匹配的,那么就使用AppDirectoriesFinder去setting.py/INSTALL_APPS 变量下的app对应的子目录下查找static文件,一旦匹配到就停止查询
反转static路径:在模板中常需要将静态文件的路径动态的反转成相应的文件路径,Django模板中提供了一个static 标签用来反转
首先在模板中加载{% load static %}
使用时{% static 文件的相对路径 %} 那么文件的相对路径是相对哪个文件呢?它相对的是在settings.py中的STATIC_URL这个变量,所以完整的路径反转后的url会是 'STATIC_URL + 文件的相对路径'
在网站上应用staticfile
staticfile的引用
如何在真实的服务器环境上部署静态文件