• 15
  • 15
分享
  • 数据库:除了增删改查,我还会设计和创建!——软件测试圈
  • 曼倩诙谐 2021-10-08 10:00:18 字数 1895 阅读 2370 收藏 15

  在日常测试工程中,不管是功能测试、接口测试、UI测试等,其实本质都是对应用程序的数据进行增删改查操作。开发人员设计好数据库模型后,各个业务功能都依赖于对该模型进行操作,从而展现出不同的数据给用户。

  在面试或者是写简历时,对数据库只能一句话概括“掌握数据库的增删改查”。今天来给大家带大家了解下web应用程序的数据库设计和相关操作,也就是学习下数据库是如何设计和生成的。

  在开始之前,首先要知道常用的web应用框架有django和flash框架,两者的区别可以简单形容为django像是精装房,大而全,功能极其强大,是Python web框架的先驱,用户多,第三方库极其丰富,适合企业级网站;而flash像是毛坯房,小巧、灵活,让程序员自己决定定制哪些功能,非常适用于小型网站。

  今天我们就选Django框架来演示数据库设计和生成。

  Django自带ORM模型,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

  ORM模型基础

  在开始设计数据库之前,我们先来了解下数据类型,作为一个测试人员,在日常测试中我们都会考虑到以下测试点:

  1.字段支持输入的类:数字、字母等

  2.字段是否允许为空

  3.字段是否唯一

  ……

  其实以上规则限制需要引用到Django ORM数据库模型。

  了解数据类型

  在学习python或java等开发语言过程中,我们首先第一步学习的就是了解这个语言的数据类型,那么在学Django的ORM数据模型也是一样,我们第一步也是要先了解其常用的数据字段类型。

1-1.png

  了解数据字段常用属性

1-2.png

  具体其他参考相关资料文档说明。

  注册数据表设计

  Django的ORM数据模型定义在项目的models.py文件内。常见的用户注册信息一般包含一下几个字段,用户名、密码、邮箱、手机号等,所以对应的数据库设计:

  前提:已创建django项目和程序。

1-3.png

  数据表注册

  1.检查条件

  1)注册app

  在项目的配置文件settings.py内的INSTALLED_APPS内注册app应用程序。

  2)设置数据库连接信息

  创建app时会自动创建sqlite3,django默认是用该数据库启动;若需要更换成mysql,则对应的项目的配置文件settings.py内的DATABASES也需要设置成mysql配置信息。

  2.数据库模型激活

  激活命令:python manage.py makemigrations

  执行激活命令后会在项目的migrations目录下生成一个预处理文件。

1-4.png

1-5.png

  数据表迁移(同步到数据库)

  迁移命令:python manage.py migrate

1-6.png

  迁移成功后才可操作数据库,迁移成功后数据库内自动以“app_模型类名小写”命名生成一张新的数据库表,如下图:

1-7.png

  操作数据库

  Django自带的ORM(object relational mapping对象关系映射)模型,通过调用api直接操作对应的数据库即可。如果业务逻辑未完成,Django也提供超级管理员界面,可通过超级管理员直接操作数据库模型。

  1.创建超级管理员,执行命令:python manage.py createsusperuser,按照提示创建管理员

  2.将数据库注册到超级管理

  3.启动Django服务:python manage.py runserver (启动成功够默认服务地址127.0.0.1:8000)

  4.访问超级管理员后台:http://127.0.0.1:8000/admin/   进入超级管理员登录界面:

1-8.png

  输入超级管理员账号和密码即可登录管理后台。

  5.超级管理员关联用户自定义的数据库,在项目下的admin.py文件内注册用户自定义的数据库,注册后超级管理员admin就有权限访问该数据库。

1-9.png

  点击对应的Account即可进行数据库的增删改查操作。

1-10.png

  以上内容就是一个数据库表生成的全过程,当然了实际业务中使用的数据库表字段更多,还设计到表与表之间的关系等,并不是一个用户信息表这么简单的事情,本文的主要目的是给大家普及下数据库表的生成过程以及数据库字段类型的概念。通过一个简单的案例让大家对数据库有更进一步的了解~



作者:绿豆芽呀   

来源:http://www.51testing.com/html/71/n-4478871.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 三角形三边面试题,是一个经典的很老的题了,在2011年的时候,华为面试遇到过,今天无意中搜到了,加上自己理解和思路汇总下,这个题主要是等价类划分的应用对一个三角形三边如何设计测试用例假设三边分别为A、B、C,那么根据现有条件,我们可以设计以下功能点先来看看构成三角形的条件1、任意两边相加之和大于第三边a + b > c a + c > b b + c > a2、两条边相等,两条边的平方和等于第三边的平方和a = b >&n...
            14 14 5114
            分享
          •   一、银行海外业务总概  在银行系统中,国内业务系统和海外业务系统是分开的,它们的业务、功能、流程不同,那意味着环境、应用、部署等等是完全不一样的,那对于测试人员来说,这就是国内外的业务系统,就是两套完全不一样的功能系统,但测试方法是可以相通的。总体来说,海外业务的比国内业务少一些,主要集中在票据业务、支付清算、定期业务、活期业务和客户业务等等方面。  二、银行系统术语定义  三、银行海外系统的架构  四、票据业务  银行票据交换业务是银行之间进行商业汇票、本票、支票、汇票等票据交换的业务。目前来说,海外的业务一般指的是澳门分行和香港分行的业务,他们的票据业务包括本行交换票扣账、他行交换票扣...
            0 0 466
            分享
          •   项目背景  https://passport.csdn.net/login CSDN登录页面  功能实现  ·自动运行用例  ·自动生成测试报告  ·自动断言与截图  ·自动将最新测试报告发送到指定邮箱  ·数据,页面元素分离  ·PageObject+Unittest+ddt数据驱动用例  ·执行日志、分布式执行  项目架构  浏览器driver定义from common.readFile import ReadFile   from common.logger import Logger   from seleniu...
            7 7 2201
            分享
          •   单元测试(Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。 程序单元是应用的最小可测试部件。简单来说,就是测试数据的稳定性是否达到程序的预期。谈到测试,我们为什么要对程序进行测试呢?测试会为程序带来什么好处呢?  我们日常开发时可能在不经意间写错,如果等到最后阶段去检验项目成果时,发现有错误,这时候我们很难找到Bug的源头在哪里。我们都知道,有可能一处出错会导致步步错的情况。  测试就在我们的上述说法中,显得尤为重要,当我们做完项目的一个小模块,先去测试一下这个小模块是否正确或达到预期,如果错误或者没有达到预期就需要反复修改,直到...
            2 3 2310
            分享
          •   免费领资料的活动还没参与吗?点击链接填写软件测试调查问卷,即刻领取:http://vote.51testing.com/  1. 如果不考虑上限的话我认为是后端,然后是前端、测试、运维。  后端程序员起薪6K左右,然后会上升很快,一般有3-5年经验的20K左右,当然做的好的30K的也不在少数。  前端程序员起薪7K,然后会平稳上升,有3-5年的工作经验的话一般会有15K-18K,做的好的也有20K+的。  测试工程师的薪资一般会在6K左右,然后上升就比较慢了,之后会在13K左右吧。  运维工程师就有点尴尬了,薪酬是一般程序员的80%,但相对付出的时间不到一般程序员的50%。  当然这是我在...
            0 0 1913
            分享
      • 51testing软件测试圈微信