数据库:除了增删改查,我还会设计和创建!

发表于:2021-9-13 09:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:绿豆芽呀    来源:51Testing软件测试网原创

分享:
  在日常测试工程中,不管是功能测试接口测试、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数据模型也是一样,我们第一步也是要先了解其常用的数据字段类型。

  了解数据字段常用属性

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

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

  数据表注册
  1.检查条件
  1)注册app
  在项目的配置文件settings.py内的INSTALLED_APPS内注册app应用程序。

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

  2.数据库模型激活
  激活命令:python manage.py makemigrations
  执行激活命令后会在项目的migrations目录下生成一个预处理文件。

  数据表迁移(同步到数据库)
  迁移命令:python manage.py migrate

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

  操作数据库
  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/   进入超级管理员登录界面:

  输入超级管理员账号和密码即可登录管理后台。
  5.超级管理员关联用户自定义的数据库,在项目下的admin.py文件内注册用户自定义的数据库,注册后超级管理员admin就有权限访问该数据库。

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

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

  版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号