Django初体验
学习初衷
最近在阅读虫师的《Web接口开发与自动化测试》一书,一直以来我都视虫师、乙醇二位前辈为自己测试路上的导师,此次学习Django也是虫师在该书中给的建议,要做接口自动化测试,最好的方式就是从学习接口开发入手。最近工作上在构建自己的接口测试体系,工作之余便准备学学Django和相关技术加深理解。
Django学习参考资料
虫师·《Web接口开发与自动化测试——基于Python语言》
Django安装
前提:已安装Python与pip
pip install django
Windows与Linux均此一个命令即可。
创建Django工程
进入目标目录,运行命令创建Django工程:
django-admin startproject YOUR_PROJ_NAME
进入YOUR_PROJ_NAME目录后,启动server:
python manage.py runserver
浏览器输入localhost:8000,预览第一个Django工程页面:
图1 第一个Django页面预览创建Django应用
使用终端(cmd.exe/terminal等)在YOUR_PROJ_NAME目录下,创建Django应用。以下2个命令结果一样,使用其中一个即可:
命令1:
django-admin startapp APP_NAME
命令2:
python manage.py startapp APP_NAME
* 关于“django-admin”与“manage.py”命令的异同,参阅文首给的Django官方文档。
简单的Index页面编写
以下参考虫师的《Web接口》一书,编写最简单的index页面过程。
工具:VSCode
我的project目录内容如下:
图2 我的工作目录其中sign为我的app名,templates目录在后面会提到,暂且不提。
简易版1:
添加应用sign到工程的settings中:
firstdjango/settings.py
......
INSTALLED_APPS=[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sign',
]
......
编辑应用sign的views.py,添加期望显示的内容。
sign/views.py
......
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse('Hello, django!')
编辑firstdjango/urls.py,添加views并展示在/index/页面。
firstdjango/urls.py
......
from sign import views
urlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
工作完成,保存所有修改,重新启动webserver后,打开localhost:8000/index页面查看成果:
图3 index页面简易版2:
在应用sign目录创建templates目录,进入templates目录创建index.html,参考图2。
现在为index页面添加简单的HTML样式。
sign/templates/index.html
<html>
<head>
<title>Django Index</title>
</head>
<body>
<h1>Hello, Django!</h1>
</body>
</html>
更新sign/views.py的内容,使用render替代上节中使用的HttpResponse。
sign/views.py
......
defindex(request):
return render(request, "index.html")
更新firstdjango/urls.py中url方法的regex参数,将index改为index.html
......
urlpatterns=[
url(r'^admin/', admin.site.urls),
url(r'^index.html/', views.index),
]
......
工作完成,保存所有修改,重新启动webserver后,打开localhost:8000/index.html页面查看成果:
图4 index.html页面以上是Django初体验过程,多是参考虫师的《web接口》一书,推荐购买阅读。