1. 環(huán)境準(zhǔn)備:
python安裝(略)
Django: pip install Django
2. 搭建restmanagement服務(wù)器端代碼蚤氏,為什么叫這個名字缆镣,本來想取個更高大上的名字的,但是由于想寫RESTful API犹赖,為了凸顯用了RESTful標(biāo)準(zhǔn)队他,就把rest放在了名字里面。
a. 打開PC冷尉, 新建一個PC project
????New->project: restmanage
b. View->Tool windows->Terminal,命令如下
#創(chuàng)建 restmanagement Django容器
????django-admin startproject restmanagement
#到manage.py所在目錄
?????cd restmanagement
#創(chuàng)建工程
? ? ? python manage.py startapp testmanage
做了上述操作漱挎,工程的大致結(jié)構(gòu)已經(jīng)出來了系枪,由于在開始做項(xiàng)目的時候并沒有記錄雀哨,現(xiàn)在就只有看看成形后的項(xiàng)目結(jié)構(gòu)了。
我個人的理解:Django框架私爷,已經(jīng)把我們搭建環(huán)境的邊邊角角的功能都實(shí)現(xiàn)了雾棺,我們只需要去簡單配置url, views就能夠跑以來一個簡單的功能了。
礦建搭建好后衬浑,我們僅僅需要添加我們需要的功能捌浩。
c. Django的添磚加瓦
restmanagement->management是Djange項(xiàng)目的配置,主要配置如下:
Settings:
Allowed_Hosts=["*"], 允許任何IP地址訪問
INSTALLED_APPS= [
'testmanage',? #項(xiàng)目名稱
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]
ROOT_URLCONF ='restmanagement.urls'
TEMPLATES添加:'DIRS': [os.path.join(BASE_DIR,'templates')],
database的配置:參看代碼
路徑配置:
#配置css的路徑
STATIC_URL ='/static/'? ? ? ?
STATICFILES_DIRS = (os.path.join(BASE_DIR,"static"),)? ? ??
#由于項(xiàng)目要存放audio鏈接工秩,配置audio 路徑
MEDIA_ROOT='audio/'? ??
MEDIA_URL='/uploadfile/'
urls.py
urlpatterns = [
url(r'^$', views.index,name="index"),
url(r'^admin/', admin.site.urls),
url(r'^testmanage/', include('testmanage.urls',namespace='testmanage'))
]
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
views.py
配置默認(rèn)的打開路徑
def index(request):
return redirect("/testmanage/index/")
d. 服務(wù)器功能的添磚加瓦:
models.py: 定義數(shù)據(jù)庫模型尸饺,系統(tǒng)需要用的數(shù)據(jù)庫表都在此文件中定義
用到命令:
python manage.py makemigrations
python manage.py migrate
admin.py
后臺管理界面,將相關(guān)的數(shù)據(jù)庫表注冊到該表中助币,eg:
admin.site.register(RuningTestcase)
admin.site.register(Testcase)....
urls.py
工程相關(guān)的web頁面url定義在此文件浪听,eg:
url(r'^list/$', views.RuningTestcase_list,name='RuningTestcase_list'),
url(r'^log/$',? views.RuningTestcase_post,name='RuningTestcase_post'),
url(r'^index/$',views.index,name='index'),
url(r'^(?P\w+)/index_domain/$', views.index_domain,name='index_domain'),
url(r'^result/$',views.result,name='result'),
views.py
Restful api定義在此文件,由客戶端訪問(實(shí)現(xiàn)眉菱,略)
頁面顯示的內(nèi)容處理迹栓,功能處理,可以放在該文件俭缓,由前端web訪問克伊。實(shí)現(xiàn)(太多酥郭,略)
RESTful api定義
Get: 客戶端獲取沒有run的testcase,把testcase需要的內(nèi)容愿吹,文件不从,用json封裝,通過網(wǎng)絡(luò)發(fā)給客戶端洗搂。
Post:客戶端在本地run case消返,并把test結(jié)果,封裝成jason格式的數(shù)據(jù)流耘拇,發(fā)回服務(wù)器端撵颊。
在這個過程中,數(shù)據(jù)的序列化和反序列化惫叛,花費(fèi)了相當(dāng)長的時間倡勇,最終都沒成功,手動的寫函數(shù)嘉涌,自己將數(shù)據(jù)封裝成json格式的數(shù)據(jù)流進(jìn)行傳輸妻熊。
前端頁面:
index:返回總的test case的數(shù)量和內(nèi)容
runningtestcase:正在執(zhí)行的testsuit的運(yùn)行情況
testresult:正在執(zhí)行的testsuit的測試結(jié)果和log展示
failedtestsult:正在執(zhí)行的testsuit的failed的測試結(jié)果的展示
部署后的系統(tǒng)展示:??http://198.13.35.165:443/testmanage/index/