1. 环境准备:
python安装(略)
Django: pip install Django
2. 搭建restmanagement服务器端代码,为什么叫这个名字,本来想取个更高大上的名字的,但是由于想写RESTful API,为了凸显用了RESTful标准,就把rest放在了名字里面。
a. 打开PC, 新建一个PC project
New->project: restmanage
b. View->Tool windows->Terminal,命令如下
#创建 restmanagement Django容器
django-admin startproject restmanagement
#到manage.py所在目录
cd restmanagement
#创建工程
python manage.py startapp testmanage
做了上述操作,工程的大致结构已经出来了,由于在开始做项目的时候并没有记录,现在就只有看看成形后的项目结构了。
我个人的理解:Django框架,已经把我们搭建环境的边边角角的功能都实现了,我们只需要去简单配置url, views就能够跑以来一个简单的功能了。
矿建搭建好后,我们仅仅需要添加我们需要的功能。
c. Django的添砖加瓦
restmanagement->management是Djange项目的配置,主要配置如下:
Settings:
Allowed_Hosts=["*"], 允许任何IP地址访问
INSTALLED_APPS= [
'testmanage', #项目名称
'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"),)
#由于项目要存放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
配置默认的打开路径
def index(request):
return redirect("/testmanage/index/")
d. 服务器功能的添砖加瓦:
models.py: 定义数据库模型,系统需要用的数据库表都在此文件中定义
用到命令:
python manage.py makemigrations
python manage.py migrate
admin.py
后台管理界面,将相关的数据库表注册到该表中,eg:
admin.site.register(RuningTestcase)
admin.site.register(Testcase)....
urls.py
工程相关的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定义在此文件,由客户端访问(实现,略)
页面显示的内容处理,功能处理,可以放在该文件,由前端web访问。实现(太多,略)
RESTful api定义
Get: 客户端获取没有run的testcase,把testcase需要的内容,文件,用json封装,通过网络发给客户端。
Post:客户端在本地run case,并把test结果,封装成jason格式的数据流,发回服务器端。
在这个过程中,数据的序列化和反序列化,花费了相当长的时间,最终都没成功,手动的写函数,自己将数据封装成json格式的数据流进行传输。
前端页面:
index:返回总的test case的数量和内容
runningtestcase:正在执行的testsuit的运行情况
testresult:正在执行的testsuit的测试结果和log展示
failedtestsult:正在执行的testsuit的failed的测试结果的展示
部署后的系统展示: http://198.13.35.165:443/testmanage/index/
网友评论