自动化测试平台搭建系列(5)——Django创建数据库并使用


Django中有个默认的SQLite数据库,我不太习惯用Django自带的数据库,于是自行配置了一个mysql数据库

在MySQL中创建一个库

如果未安装mysql,请先参照上篇文章安装mysql
自动化测试平台搭建系列(4)——下载安装MySQL数据库并使用
管理员权限启动mysql:net start mysql
在这里插入图片描述
在这里插入图片描述
开启服务成功后,继续打开cmd,切到mysql解压报的bin目录下执行命令
打开mysql:mysql -u root -p (上篇文章已细述,这里就不过多讲解了)
在这里插入图片描述
然后创建一个名为“test”的库
create database test charset=‘utf8’;
在这里插入图片描述

在这里插入图片描述

数据库配置

在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:

# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases
# 配置数据库 添加了中文注释 需在 文件头部添加 # -*- coding: UTF-8 -*-
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'test',#数据库名称
        'USER': 'root', # 数据库user
        'PASSWORD': '123456',# 数据库password
        'HOST':'localhost', # ip
        'PORT':3306,#postgresql端口为6432; mysql端口为: 3306
    }
}

    1.ENGINE:指定要连接的数据库的驱动程序
        连接MYSQL的话可以取值为:'django.db.backends.mysql'	
    2.NAME:指定要连接到的数据库的名称
        连接mysql的话可以取值为: 数据库名
    3.USER:指定登录到数据库管理系统的用户名
        连接到mysql的话,可以为:root
    4.PASSWORD:指定登录到数据库管理系统的密码
    5.HOST:指定要连接到的主机地址
        如果是本机的话:127.0.0.1或localhost
    6.PORT:指定端口号
        mysql的默认为3306

创建 APP

Django规定,如果要使用模型,必须要创建一个app。

django-admin startapp TestModel(APP名字) # 让 Django 知道我们在我们的模型有一些变更

在这里插入图片描述

命令3:python manage.py migrate TestModel (APP名) # 创建表结构
在这里插入图片描述

在 TestModel/models.py中定义数据库表名及字段(可写多各class创建多个表):

编写models

编写models
   在创建的app下的models中编写(不要忘记将app添加到seeting.py中的
   INSTALLED_APPS 中)
	1.Models的语法规范
        class ClassName(models.Model):
            属性 = models.FIELDYPE(FIELD_OPTIONS)
                FIELDTYPE : 字段类型
                    CharField()        
                FIELD_OPTIONS:字段选项(字段说明)
                    max_length=30
   2. 常见的字段名和字段选项
   
       字段类型 FIELDTYPE
        1.BooleanField()
            编程语言中使用true 或 false 来表示该列的值
            数据库中使用1 或0 来表示具体的值
            数据类型为:tinyint

        2.CharField()
            编程语言中使用字符串来表示该列的值
            数据库中也是字符串
            数据类型为:varchar
            注意:必须要指定max_length参数值

        3.DateField()
            编程语言中使用字符串或者Date类型的数据表示该值
            数据库中使用的是时间字符串
            数据类型为;date
        4.DateTimeField()
            数据类型为:datetime
        5.DecimalField()
            编程语言中使用数字(小数)来表示该列的值
            数据库中使用小数表示
            数据类型:decimal
            money = models.DecimalField(max_digits=7,decimal_places=2)

        6.FloatField()
            编程语言中使用数字(小数)来表示该列的值
            数据库使用小数
            数据类型:float
            
        7.IntegerField()
            数据类型:int
            
        8.EmailField()
            编程语言中使用字符串来表示一段email地址
            数据库中使用字符串表示
            数据类型:varchar

        9.URLField()
            编程语言中使用字符串来表示一段网址
            数据库中使用字符串表示
            数据类型:varchar

        10.ImageField()
            目的:存储图片的路径
            数据类型:varchar
            image = models.ImageField(upload_to='images/')

    字段选项:FIELD_OPTIONS
        1.default
            作用:为当前字段指定默认值
        2.null
            作用:指定当前字段是否为空,默认值为False,不能为空
        3.db_index
            作用:指定是否为当前指定索引
        4.db_column
            作用:指定当前属性映射到表中的类名,如果不指定则采用属性名称作为类名

例:

			# 创建一个实体类 - Publisher(出版社)
			# 1.name : 出版社名称(varchar(30))
			# 2.address: 出版社所在地址(varchar(200))
			# 3.city:出版社所在的城市(varchar(50))
			# 4.country:出版社所在的国家(varchar(50))
			# 5.website:出版社的网址(varchar(200))
			class Publisher(models.Model):
			    name = models.CharField(max_length=30)
			    address = models.CharField(max_length=200)
			    city = models.CharField(max_length=50)
			    country = models.CharField(max_length=50)
			    website = models.URLField()

将数据同步回数据库
先创建数据库和配置完setting.py后再执行
1. ./manage.py makemigrations
作用:将每个应用下的modeles.py文件生成一个数据库的中间文件,并将中间文件保存到migrations的目录中
2. /manage.py migrate
作用:将每个应用下的migrations目录中的中间文件同步到数据库中
在这里插入图片描述
创建超级用户 密码是不显示的 但 必须要填
在这里插入图片描述
在这里插入图片描述
然后命令行或者收到启动项目可以打开Django自带的登录
浏览器打开:http://127.0.0.1:8000/admin/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

很多细节未补充,后面Django的views遇到点小问题,更新中。。。
详见下一篇文章

### Django 测试平台开发教程 #### 项目结构 在构建基于 Django 的测试平台时,合理的项目结构至关重要。通常情况下,Django 项目的根目录下会有一个 `manage.py` 文件以及一个与项目同名的子目录。此子目录中包含了核心配置文件如 `settings.py`, `urls.py` 和 `wsgi.py` 等[^4]。 对于特定的应用程序模块(例如负责处理测试用例管理的部分),会在项目内部创建独立的应用包,在其中定义模型、视图函数或者类、模板以及其他资源文件。为了支持全面的功能需求,建议按照功能划分应用组件,比如可以有专门用于用户认证的应用、另一个用来存储和操作测试案例的数据逻辑层等等[^1]。 #### 创建测试环境 利用 Django 自带的强大 ORM 功能可以在 `models.py` 中声明数据库模式,借助于 `makemigrations` 及 `migrate` 命令完成迁移任务来同步到实际使用数据库实例上。这使得开发者能够专注于业务规则的设计而无需关心底层 SQL 编写细节。 当涉及到编写单元测试或集成测试脚本的时候,则应该遵循 Python 社区广泛接受的标准做法——即把所有的测试代码放置在一个名为 tests 的特殊命名空间里;同时也可以考虑引入第三方工具像 pytest 来增强测试能力。 ```python # example/tests/test_views.py from django.test import TestCase from .views import index_view class IndexViewTests(TestCase): def test_index_page(self): response = self.client.get('/') assert response.status_code == 200 ``` #### 实现 API 接口服务端点 如果目标是建立一套完整的 Web 应用程序而非仅限于简单的 CRUD 操作的话,那么还需要关注 RESTful 设计原则下的接口设计。此时可选用扩展插件如 Django REST Framework 或者更现代的选择 django-ninja 来快速搭建起高性能且易于维护的服务端API框架[^2][^3]。 通过上述这些技术手段相结合的方式,便能有效地建立起一个既具备良好用户体验又拥有强大后台支撑体系的自动化测试平台解决方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七光年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值