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>