想做任何事情之前,先测试…
很久没更新博客了…近期一直在看书。
这里总结一些书上的知识吧。
用Python Selenium 的 webdriver 打开浏览器,打开期望的网页。
1 2 3 4 5 6 7 |
from selenium import webdriver browser = webdriver.Chrome() browser.get("http://blog.tk-xiong.com") browser.quit() |
Django的一些命令
创建项目: Django-admin.py startproject superlists(项目名)
运行服务器: python3(命令) manage.py runserver
创建应用: python3 manage.py startapp lists
隐式等待:
browser = webdriver.Chrome()
browser.implicitly_wait(3)
功能测试:从用户的角度描述功能该如何运行
python3 functional_tests.py
python3 manage.py test functional
单元测试:从程序员角度从内部测试应用
python3 manage.py test lists
MVC模式
MVC使用一种业务逻辑,数据,界面显示分离的方法组织代码。将业务逻辑聚集到一个部件内,在改进和个性化定制见面及用户交互的同时,不需要重新编写业务逻辑。
MVC模式同时提供了对HTML、CSS、JS的完全控制。
- Model(模型)是应用程序中用于处理程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
- View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
- Controller(控制器)是应用程序中处理用户交互部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC的分层有助于管理复杂的应用程序。可以在一个时间内专门关注一些方面,比如可以不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
同时也简化了分组开发,不同的开发人员可以同时开发视图、控制器逻辑和业务逻辑。
在Django中,模型确实是有的,但是视图更像是控制器,模板才是真正的视图。
Django的工作流程大致如下:
- 针对某个URL的HTTP请求进入了
- Django使用URL解析的规则决定由哪个视图处理这个请求
- 选中的视图处理请求然后返回HTTP响应
在使用Form表单保存用户输入的时候,记得加上令牌 {% csrf_token %}
向浏览器输入 inputbox.send_keys(…)
数据库每添加一个新字段,就要创建一个迁移.
数据库迁移命令: python3 manage.py makemigrations
用迁移来创建/更新数据库 python3 manage.py migrate
回归的概念:新添加的代码破坏了应用原本可以正常使用的功能
还有一些断言
assertIn
assertNotIn
assertEqual
assertTrue
assertRegex
assertContains
assertNotContains
assertRedirects