大家好,我是TT,互联网测试行业多年,没有牛逼的背景,也没有什么可炫耀的,唯独比他人更努力,在职场打拼。遇到过的坑,走过的弯路,愿意与大家分享,分享自己的经验,少走弯路。首发于个人公众号【测试架构师】

原文如下:


最近折腾了一个自己的个人博客:87testing.com,这样可以记录自己的学习、工作和生活。主要在这里写下自己的学习笔记、软件测试思考及读书感悟等,后续可能会系统的介绍一些python、django、移动端自动化测试、接口自动化测试、性能测试等。欢迎您的光临!

要想深入测试,必须了解功能逻辑,对数据流及网站架构比较清楚,这点也说过多次,真的很重要,必须要体现在工作当中,养成习惯,绝对不要对自己测试过的功能模块其中的技术实现不清楚。这样测试路会不好走!!!

-----------------------------华丽的分割线----------------------------

今天分享的内容为django,适合初学者,同样也慢慢对网站能够有些了解。以下内容是在mac下操作的(其他系统大同小异),使用的python自带版本2.7。

  • mac下安装pip

在终端Terminal里面输入sudo easy_install pip,回车,就开始进行下载安装,网络好的话几秒钟就安装好。

安装成功后,终端Terminal中直接pip就出出现pip命令的说明信息,说明pip安装成功可以正常使用了。

  • 安装Django

终端Terminal中输入sudo pip install django,等待安装完成,如图:

使用命令python -m django --version或者pip show django查看django版本信息,如图:

  • 使用django创建一个项目,项目名称ceshijiagoushi

django-admin startproject ceshijiagoushi

新建好项目以后,使用PyCharm打开,也可以看到目录

新建好后的目录说明:

ceshijiagoushi: 项目的容器。

manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。

ceshijiagoushi/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。

ceshijiagoushi/settings.py: 该 Django 项目的设置/配置。

ceshijiagoushi/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。

ceshijiagoushi/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

  • 在ceshijiagoushi项目的容器中创建一个testing应用

python manage.py startapp testing

应用创建完成后,运行项目:

python manage.py runserver

运行成功并正常启动,如图:

有可能会遇到的问题是8000端口被占用,可以将端口号改为8001,那么在重新启动时指定端口号:

python manage.py runserver 127.0.0.1:8001

备注:

后续可能还会遇到8001端口被占用的提示,那么可以使用命令:

lsof -i:8001查出端口被哪个程序占用,

然后把端口对应的进程关掉:kill -9 pid(对应的进程号)

  • 如果要在此项目的web页面上打印一句话出来,"Hello,ceshijiagoushi!"

接下来需要配置几个地方:

1.将testing应用添加到项目中,ceshijiagoushi/settings.py中新增testing:

2.ceshijiagoushi/urls.py,导入testing应用views文件、新增index/路径配置:

3.定义index函数,并通过HttpResponse类向浏览器返回字符串"Hello ceshijiagoushi!"

以上都修改完成后,启动项目,浏览器访问127.0.0.1:8001/index/ (在这里我启用了8001的端口)就看到打印结果了:

通过上面我们已经知道怎么在页面打印出字符串:"Hello ceshijiagoushi!"

  • 将字符串替换成html页面

接下来将字符串替换成html页面,这样就可以不断的对页面进行优化了。

首先,在testing目录中创建templates目录,然后在templates目录中创建index.html文件。修改下html文件,如图:

其次,views.py文件index函数中的HttpResponse类修改为render函数,request请求对象改成index.html

再次访问http://127.0.0.1:8001/index/,页面就展示的index.html页面的内容了。

用户访问到显示html页面django处理得过程如下:

1. 用户通过浏览器请求一个页面

2.请求到达Request Middlewares,中间件对request做一些预处理或者直接response请求

3.URLConf通过urls.py文件和请求的URL找到相应的View

4.View Middlewares被访问,它同样可以对request做一些处理或者直接返回response

5.调用View中的函数

6.View中的方法调用Django的render函数请求index.html,最终返回index.html中的内容。


了解更多请关注微信公众号:测试架构师

                                                        


Python Django之路与您同行的更多相关文章

  1. Python菜鸟之路:Django 路由补充1:FBV和CBV - 补充2:url默认参数

    一.FBV和CBV 在Python菜鸟之路:Django 路由.模板.Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view ...

  2. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  3. Django之路: 基本命令与网址进阶

    一.Django 基本命令 温馨提示:如果你想学习Django,那么就请您从现在开始按照笔记记录一步一步的用手把代码敲出来,千万不要偷懒哦..... 1.创建一个Django project djan ...

  4. Python学习之路-Day1-Python基础

    学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...

  5. Python学习之路【第一篇】-Python简介和基础入门

    1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...

  6. Python学习之路目录(收藏整理)

    目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:Python基础(一) Python之路[第三篇]:Python基础(二) Python之路[第四篇]:模块    ...

  7. python学习之路------你想要的都在这里了

    python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...

  8. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  9. python——django使用mysql数据库(二)

    上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...

随机推荐

  1. cuda学习1-初始庐山真面目

    cuda作为gpu计算中的代表,拥有着超级高的计算效率,其原因是gpu实际相当与一台超级并行机组,使用过MPI做并行计算的人们可能知道,所谓的并行计算,简单讲就是用多个U(计算单元)来完成一个U的计算 ...

  2. [原创]nagios搭建配置

    nagios搭建配置 一.环境 ubuntu 14.04系统 host1:172.17.0.2 serverhost2:172.17.0.3 client 二.安装 1.在两个主机上都执行一下命令: ...

  3. php处理表单中的复选框问题以及js实现全选

    做的一个项目中遇到了全选和取消全选的问题,这是一个很普遍的功能,,虽然我们经常用到,但是真正做起来却发现行不通,在网上找了些,大部分都是ie,但是谷歌内核浏览器不能正常实现,所以经过小小的调整,今天就 ...

  4. RabbitMQ安装配置和基于EasyNetQ驱动的基础使用

    一.RabbitMQ基本概念和原理 1.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计. 2.Ra ...

  5. 生成JSON数据--官方方法

    官方生成方法: 1)需要什么就给什么,要属性就给属性,要对象就给对象,要集合就给集合 2)添加都是使用put()方法 要求: 1.生成如下JSON数据: {"age":4,&quo ...

  6. python+selenium遇到鼠标悬停不成功可以使用js进行操作

    问题:在定位这种悬停后出现下拉操作的时候,尝试了使用move_to_element的方法 # ele_logout = br.find_element_by_xpath('/html/body/div ...

  7. 纯手工打造简单分布式爬虫(Python)

    前言 这次分享的文章是我<Python爬虫开发与项目实战>基础篇 第七章的内容,关于如何手工打造简单分布式爬虫 (如果大家对这本书感兴趣的话,可以看一下 试读样章),下面是文章的具体内容. ...

  8. zookeeper源码分析-server-util

    zxid (ZooKeeper Transaction Id,每次请求对应一个唯一的zxid,如果zxid a < zxid b ,则可以保证a一定发生在b之前) zookeeper采用了递增的 ...

  9. 深入浅出 spring-data-elasticsearch - 基本案例详解(三

    『  风云说:能分享自己职位的知识的领导是个好领导. 』运行环境:JDK 7 或 8,Maven 3.0+技术栈:SpringBoot 1.5+, Spring Data Elasticsearch ...

  10. thinkphp中find()和select()的区别

    1.find()是查找符合条件的第一条数据,返回的是一个一维数组: select()是查找符合条件的所有的数据,返回的是一个二维数组: 2.以下案例 $tech=M('techlevel','HR_C ...