07-16 django 76-80
______egon新书python全套来袭请看:https://egonlin.com/book.html
76.django-debug-toolbar 的作用?
django开发调试工具
django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息。
77.django 中如何实现单元测试?
Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试。类名为django.test.TestCase,继承于python的unittest.TestCase。
执行目录下所有的测试(所有的test*.py文件):运行测试的时候,测试程序会在所有以test开头的文件中查找所有的test cases(inittest.TestCase的子类),自动建立测试集然后运行测试。
$ python manage.py test
执行animals项目下tests包里的测试:
$ python manage.py testanimals.tests
执行animals项目里的test测试:
$ python manage.py testanimals
单独执行某个test case:
$ python manage.py testanimals.tests.AnimalTestCase
单独执行某个测试方法:
$ python manage.py testanimals.tests.AnimalTestCase.test_animals_can_speak
为测试文件提供路径:
$ python manage.py testanimals/
通配测试文件名:
$ python manage.py test--pattern="tests_*.py"
启用warnings提醒:
$ python -Wall manage.py test
78.解释orm中dbfirst和codefirst的含义?
Code First From Database(DbFirst)数据库先行
Code First(代码先行)
79.django 中如何根据数据库表生成 model 类?
创建一个项目,修改setting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致
1.运行下面代码可以自动生成models模型文件
python manage.py inspectdb
2.把模型文件导入到app中
创建app
django-admin.py startapp app
将模型导入创建的app中去
python manage.py inspectdb > app/models.py
80.使用orm和原生sql的优缺点?
相对来说,ORM的缺点就是SQL的优势地方,而优点也是SQL的劣势地方
优点
方便的使用面向对象,语句清晰
防注入『这个其实不算ORM的核心,因为比如Phalcon的SQL形式写法也可以防注入』
方便动态构造语句,对于不同的表的相同操作采用多态实现更优雅
一定程度方便重构数据层『比如改表名,字段名等』
设置钩子函数
缺点
不太容易处理复杂查询语句
性能较直接用SQL差