框架数据库配置

一.安装pymysql

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

二.创建数据库用户

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

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

在这里插入图片描述
同时我们要在setting中修改这个。

三.ORM

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

四.模型的创建及迁移

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的对应关系。
在这里插入图片描述
但是这还没有完,我们还要在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增

在这里插入图片描述
首先我们要导入模型,Student其实就是相当一个类,也对应数据库的表,s就相当于实例了一个对象,也是相当于表中的一条数据,但是无论怎么增加,我们都要s.save().就是保存一下才能生效。
在这里插入图片描述
这就是结果。
在这里插入图片描述
也可以通过这种先创建一个空实例然后我们在一一赋值的方式来用。(也要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()   
 #删除全部
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值