文章目录

  • 一.安装pymysql
  • 二.创建数据库用户
  • 三.ORM
  • 四.模型的创建及迁移
  • 五.数据库的增删改查
  • 5.1增
  • 5.2 查
  • 5.3 改
  • 5.4 删


一.安装pymysql

这个要在虚拟环境django环境下,我这里创建的django环境名是djiangoapp,首先通过workon到所在的环境,然后通过pip install pymysql来实现,我这里已经安装了就不演示了。

二.创建数据库用户

harmonyOS database 框架_数据库


首先创建一个数据库,但是这个最好是加上格式,因为我的电脑是配置好的,所以不需要配置了。

create user '...'@'host' identified by '...'
grant all privileges on CRM.* to 'thomas'@'%' identified by 'thomas';

这个是创建一个用户,并把所有的权限给这个用户,当然这个命令要在root用户下面进行调用,其中的%是表示可以远程控制。
同时如果想快速通过命令进入的话可以用下面的这个语句。

mysql -u'用户名' -p -A '数据库名'

比如我自己创建的用户名为thomas,数据库名为CRM

mysql -uthomas -p -A CRM

harmonyOS database 框架_数据库_02


同时我们要在setting中修改这个。

三.ORM

harmonyOS database 框架_mysql_03


ORM就是可以通过pymysql语句代替sql语句执行数据库的操作,当然我们要在init文件中导入

harmonyOS database 框架_mysql_04

四.模型的创建及迁移

from django.db import models

# Create your models here.
class Student(models.Model):  # 创建一个模型类
    name = models.CharField(max_length=20)
    age = models.SmallIntegerField(null=True)
    sex = models.SmallIntegerField(default=1)  # 是指默认值
    qq = models.CharField(max_length=20)
    phone = models.CharField(max_length=20)
    c_time = models.DateTimeField("创建时间", auto_now_add=True)  # 自动添加一个时间

    def __str__(self):
        return self.name

这是对应app下的model中代码,这个对应关系就是ORM的对应关系。

harmonyOS database 框架_ORM_05


但是这还没有完,我们还要在settings看app是否注册了。

注册完之后我们就到了最重要的部分,就是迁移。

首先,我们迁移是需要所在的环境的,就是django环境

python manage.py makemigrations

通过这个使所有的app全部迁移,如果想指定单独的app,在后面加上相应的app的名字就可以了。
当然如果我们想迁移生效还要加上一个语句。

python manage.py migrate

这个也可以指定app名。

五.数据库的增删改查

因为交互式ipython比较适合我们使用,所以我们想通过ipython来操作,所以我们需要安装ipython,我们首先要在指定的环境和文件下来操作,就是djiangoapp下cd到CRM下,通过代码

pip install ipython

来安装。
我们如果想要调用的话需要代码

python manage.py shell

来启动。

5.1增

harmonyOS database 框架_ORM_06


首先我们要导入模型,Student其实就是相当一个类,也对应数据库的表,s就相当于实例了一个对象,也是相当于表中的一条数据,但是无论怎么增加,我们都要s.save().就是保存一下才能生效。

harmonyOS database 框架_mysql_07


这就是结果。

harmonyOS database 框架_数据库_08


也可以通过这种先创建一个空实例然后我们在一一赋值的方式来用。(也要save)

5.2 查

res = Student.objects.all()
print(res.query)
#查询所有#
Student.objects.get(pk=1)
#查询单个#
Student.objects.filter(sex=1)

pk为主键。
因为get只能查询单条,这里的filter相当于数据库时学的where

5.3 改

该主要也是两种

s = Student.objects.get(name='')
s.phone = ''
s.save()

单条修改用get多条修改用filter

Student.objects.filter(sex=1).update(name = 'hahaha')

5.4 删

s = Student.objects.get(pk=1) 
s.delete()
#删掉单条
Student.objects.filter(qq=1).delete()
#删掉多条
Student.objects.all().delete()   
 #删除全部