1:功能完善、要素齐全:自带大量经常使用工具和框架(好比分页,auth,权限管理), 适合快速开发企业级网站。css
2:完善的文档:通过十多年的发展和完善,Django有普遍的实践案例和完善的在线文档。开发者遇到问题时能够搜索在线文档寻求解决方案。html
3:强大的数据库访问组件:Django的Model层自带数据库ORM组件,使得开发者无须学习SQL语言便可对数据库进行操做。前端
4:Django先进的App设计理念: App是可插拔的,是不可多得的思想。不须要了,能够直接删除,对系统总体影响不大。vue
5:自带台管理系统admin:只须要经过简单的几行配置和代码就能够实现一个完整的后台数据管理控制平台。java
6:Django debug信息详尽: 很容易找出代码错误所在。
python
1:大包大揽: 对于一些轻量级应用不须要的功能模块Django也包括了,不如Flask轻便。mysql
2:过分封装: 不少类和方法都封装了,直接使用比较简单,但改动起来就比较困难。程序员
3:性能劣势: 与C, C++性能上相比,Django性能偏低,固然这是python的锅,其它python框架在流量上来后会有一样问题。sql
4:模板问题: django的模板实现了代码和样式彻底分离,不容许模板里出现python代码,灵活度对某些程序员来讲可能不够。数据库
1:在写平台以前,咱们用的都是自动化测试框架,而自动化测试框架对于组员的要求高,须要用代码来写测试用例不易进行推广至全组,而自动化测试平台就能够进行全组推广共同去完成自动化测试的工做,大大提升了效率,节省测试成本;
二、处理接口测试过程的依赖关系:登陆信息、接口之间的相互依赖关系;
三、处理接口测试数据来源:导入文件到数据库,手动增长数据或修改数据;
四、测试报告生成:图表统计,数据的筛选;
五、测试灵活性:多条、单条数据自动根据开发提供的结果与实际结果进行校验;
一、后端开发框架:django
二、后台语言:python;
三、前端语言:js、css、html
四、前端框架(bootstrap或者vue)
五、数据库:mysql;
六、架构:面向对象;
平台具有的功能点:
一、数据模板下载;
二、数据模板上传;
三、单条数据提交;
四、查看导入数据的全部信息;
五、测试状况统计;
六、接口数据过滤;
七、接口数据的增删改查;
八、单条多条接口自动化测试校验;
九、接口测试自动获取登陆信息,保存登陆状态;
十、邮件发送测试报告;
十一、执行接口测试;
十二、用例执行完成生成html测试报告;
1三、测试用例与测试脚本、测试报告绑定;
M : models,数据库 django 封装了ORM,免于直接操做数据库。
T : templates, 视图 django自带模板语言,能够在HTML中处理数据的展现。
V : views, 逻辑 在models和templates之间进行数据处理以及逻辑处理。
一、建立虚拟环境
1> 启动命令行cmd
2> pip3.5 install virtualenv
3> 随便找个地方建立一个文件夹${virtural},命令行来到这个目录-->输入命令
二、在建立好的虚拟环境里安装django
1> 命令行来到建立的文件夹里进入到script文件夹内-->输入命令
pip3.5 install -U django==2.1.5
三、使用pycharm工具建立django项目
1> 启动pycharm程序,建立项目
查看建立好的django项目的目录
一、setting.py配置语言、时间
1 # Internationalization 2 # https://docs.djangoproject.com/en/2.1/topics/i18n/ 3 4 LANGUAGE_CODE = 'zh-Hans' 5 6 TIME_ZONE = 'Asia/Shanghai' 7 8 USE_I18N = True 9 10 USE_L10N = True 11 12 USE_TZ = False
二、setting.py配置数据库
1 # Database 2 # https://docs.djangoproject.com/en/2.1/ref/settings/#databases 3 4 DATABASES = { 5 # 'default': { 6 # 'ENGINE': 'django.db.backends.sqlite3', 7 # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 8 # } 9 'default': { 10 'ENGINE': 'django.db.backends.mysql', 11 'NAME': 'db1', 12 'USER': 'db1', 13 'PASSWORD': 'db1', 14 'HOST': 'db1', 15 'PORT': 'db1', 16 }
暂时先禁用mysql,使用回sqlite3
打开dj_test目录下的__init__.py文件
插入代码
1 import pymysql 2 pymysql.install_as_MySQLdb()
【运行django】
命令行,进入manage.py平级目录,输入命令:
python manage.py runserver
浏览器打开URL:http://127.0.0.1:8000/
一、dj_test目录下建立一个文件夹static
二、templates目录下建立HTML文件:index.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>王大锤的小屋</title> 6 </head> 7 <body> 8 <h1>欢迎光临</h1> 9 </body> 10 </html>
三、user目录下打开views.py文件
输入代码
1 from django.shortcuts import render 2 3 # Create your views here. 4 5 6 def index(request): 7 return render(request,'index.html')
四、在dj_test目录下打开urls.py文件
配置url
1 from django.contrib import admin 2 from django.urls import path 3 from user.views import index 4 5 urlpatterns = [ 6 path('admin/', admin.site.urls), 7 path('index/', index), 8 ]
五、配置setting.py里的TEMPLATES
否则url加载不出index.html
1 TEMPLATES = [ 2 { 3 'BACKEND': 'django.template.backends.django.DjangoTemplates', 4 'DIRS': [os.path.join(BASE_DIR,'templates')], 5 # os.path.join(BASE_DIR,'templates')没了这句, 6 # 会显示django.template.exception.TemplateDoesNotExist: index.html 7 'APP_DIRS': True, 8 'OPTIONS': { 9 'context_processors': [ 10 'django.template.context_processors.debug', 11 'django.template.context_processors.request', 12 'django.contrib.auth.context_processors.auth', 13 'django.contrib.messages.context_processors.messages', 14 ], 15 }, 16 }, 17 ]
而后浏览器输入url:http://127.0.0.1:8000/index/
或者换个写法
views.py
1 from django.shortcuts import render,HttpResponse 2 3 # Create your views here. 4 5 def index(request): 6 content = open(r'E:\PycharmProjects\dj_test\templates\index.html',encoding='UTF-8').read() 7 return HttpResponse(content) 8 # return render(request,'index.html')
六、List去下标,渲染到页面
views.py
1 import datetime 2 from django.shortcuts import render,HttpResponse 3 4 # Create your views here. 5 6 def index(request): 7 # content = open(r'E:\PycharmProjects\dj_test\templates\index.html',encoding='UTF-8').read() 8 # return HttpResponse(content) 9 catagories = ['Linux','python','java','首页'] 10 today = datetime.datetime.today() 11 12 data = {'nav':catagories,'today':today} 13 return render(request,'index.html',data)
index.html
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>王大锤的小屋</title> 6 </head> 7 <body> 8 <h1>欢迎光临,今天的日期是{{ today }}</h1> 9 <ul> 10 <li>{{ nav.0 }}</li> 11 <li>{{ nav.1 }}</li> 12 <li>{{ nav.2 }}</li> 13 <li>{{ nav.3 }}</li> 14 </ul> 15 </body> 16 </html>
七、for循环渲染
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>王大锤的小屋</title> 6 </head> 7 <body> 8 <h1>欢迎光临,今天的日期是{{ today }}</h1> 9 <ul> 10 <li>{{ nav.0 }}</li> 11 <li>{{ nav.1 }}</li> 12 <li>{{ nav.2 }}</li> 13 <li>{{ nav.3 }}</li> 14 </ul> 15 16 <ul> 17 {% for n in nav %} 18 <li>{{ n }}</li> 19 {% endfor %} 20 </ul> 21 22 </body> 23 </html>