0017 python django 06 继续 模型层 安装 python mariadb 驱动 配置Django 设置语言和时区 创建模型 生成迁移文件 运行数据库迁移

以下为学习笔记,用来备忘、交流

工具:树莓派 3B+ / Raspberry Pi 3B+
系统:带桌面的Raspbian Buster 基于Debian-Buster的桌面图像
Raspbian Buster with desktop Image with desktop based on Debian Buster
Release date:2019-09-26
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
数据库:mariadb-server-10.0
Django: 3.0.2

继续 模型层

安装数据库驱动mysqlclient

Django不能直接使用mariadb/mysql,也可以说是Django用的是python语句,python还需要安装中间程序mysqlclient来操作mariadb/mysql数据库。
安装MySQL DB API驱动程序mysqlclient
详见:https://docs.djangoproject.com/zh-hans/3.0/ref/databases/#mysql-notes 点我查看

  1. 进入虚拟环境haunjing2
source huanjing2/bin/activate
  1. 查看已安装包和包的版本
pip3 list
  1. 指定清华源安装 mysqlclient
pip3 install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple

模型1

创建新的数据库

先登录数据库,再创建新的数据库xiangmu1

create database xiangmu1 charset=utf8;

模型2

配置Django

  1. 打开项目文件夹下的settings.py文件,改为如下:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'xiangmu1',
        'USER': 'root',
        'PASSWORD': '数据库密码',
        'HOST': 'localhost',
        'PORT': '3306',
        #新添加
        'OPTIONS':{
            'init_command':"SET sql_mode='STRICT_TRANS_TABLES'",
            'charset':'utf8mb4',
        },
    }
}
  1. 在settings.py文件添加应用yingyong01
    模型3
  2. 本地化
    设置语言和时区
LANGUAGES = [
    ('zh-Hans', ('Chinese')),
]
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'

创建模型

分析确定要做两个数据库表(设备表和记录表),关系是一对多
设备表:表名、设备名、组装日期、序列号、主板版本、组装人、软件版本、检验人、是否已出售、电机厂家、电机批次、备注、是否删除、创建时间
记录表:表名、记录类型、内容、使用次数、操作人、记录时间。
代码如下:

# Create your models here.
class ShebeiInfo(models.Model):
    ShebeiName=models.CharField(max_length=30)
    SzuzhuangDate=models.DateTimeField()
    SxulieHao=models.CharField(max_length=20)
    Szhuban=models.CharField(max_length=10)
    SzuzhuangRen=models.CharField(max_length=10)
    Sruanjian=models.CharField(max_length=10)
    SjianyanRen=models.CharField(max_length=10)
    Smaichu=models.BooleanField(default=False)
    SdianjiChangjia=models.CharField(max_length=20)
    SdianjiPici=models.CharField(max_length=20)
    Sbeizhu=models.CharField(max_length=50)
    isDelete=models.BooleanField(default=False)
    StianbiaoTime=models.DateTimeField()
    
class JiluInfo(models.Model):
    JiluLeixing=models.CharField(max_length=10)
    Jneirong=models.CharField(max_length=200)
    JshiyongCishu=models.CharField(max_length=10)
    JcaozuoRen=models.CharField(max_length=10)
    JiluTime=models.DateTimeField()
    isDelete=models.BooleanField(default=False)
    Shebei=models.ForeignKey(ShebeiInfo, on_delete=models.CASCADE)
    

注释:

  1. CharField(max_length=字符长度):字符串,默认的表单样式是 TextInput
  2. DateTimeField:使用Python的datetime.datetime实例表示的日期和时间
  3. BooleanField:true/false 字段,此字段的默认表单控制是CheckboxInput
    更多内容参考:https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial02/ 点我查看

生成迁移文件

python manage.py makemigrations

模型4
注意文件路径,记得在虚拟环境2里

运行数据库迁移

python manage.py migrate

模型5
第一次运行出现一个警告,重新配置了一下数据库,正常了

登录数据库查看

模型6
Django已经在数据库新增了内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值