django-连接mysql数据库-进行增删改查操作

首先确保你有一个可以用于连接的数据库。这里是用本地的数据库演示。

先去项目的settings.py文件里面找到databases将其注释掉(默认是的sqlite3)。

django-连接mysql数据库-进行增删改查操作_第1张图片

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'autodb',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

然后注册一下,进行数据库操作千万记得注册 ,不然可能遇到No changes detected问题

django-连接mysql数据库-进行增删改查操作_第2张图片

安装一下pymysql: pip install pymysql

在主项目的__init__.py下引入:

django-连接mysql数据库-进行增删改查操作_第3张图片

import pymysql
pymysql.install_as_MySQLdb()

 不导入可能出现:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.问题

最后在modules.py里面写如下代码,创建表

django-连接mysql数据库-进行增删改查操作_第4张图片

 在命令行输入:

python manage.py makemigrations
python manage.py migrate

django-连接mysql数据库-进行增删改查操作_第5张图片

 安装都ok后,去可以数据库查看userinfo表已经创建成功:

django-连接mysql数据库-进行增删改查操作_第6张图片

———————————————————————————————————————————

数据增删改查操作:

增加:

django-连接mysql数据库-进行增删改查操作_第7张图片

 在views.py中添加一个orm方法,并在urls里面注册一下

django-连接mysql数据库-进行增删改查操作_第8张图片

运行一下,去数据库中查看。

 django-连接mysql数据库-进行增删改查操作_第9张图片

修改:

django-连接mysql数据库-进行增删改查操作_第10张图片

将id=1的密码改为456.

django-连接mysql数据库-进行增删改查操作_第11张图片

删除:

django-连接mysql数据库-进行增删改查操作_第12张图片

删除id=1的那条数据。

django-连接mysql数据库-进行增删改查操作_第13张图片

也可以使用all删除所有,userInfo.objects.all().delete()

查询:

django-连接mysql数据库-进行增删改查操作_第14张图片

完整代码如下:

def orm(request):
    # userInfo.objects.create(name="lufei", pswd="123")
    # userInfo.objects.filter(id=1).update(pswd="456")
    # userInfo.objects.filter(id=1).delete()
    # userInfo.objects.all().delete()#删除所有
    query_set = userInfo.objects.all()#查询所有数据相当于seleclt *
    for item in query_set:
        print(item.name, item.pswd)
    query_set=userInfo.objects.filter(id=1)#查询id=1的数据
    query_set=userInfo.objects.filter(pswd="123").first()#查询第一条数据
    return HttpResponse("操作成功")

补充:数据库的一些操作

django-连接mysql数据库-进行增删改查操作_第15张图片

代码如下:


class department(models.Model):
    depart = models.CharField(max_length=32)


class userInfo(models.Model):
    # ID默认自增主键不用写
    id = models.BigAutoField(verbose_name="id", primary_key=True)
    name = models.CharField(verbose_name="名字", max_length=32)
    age = models.IntegerField()
    # 最长10位数,小数保留两位,默认是0
    money = models.DecimalField(max_digits=10, decimal_places=2, default=0)
    create_time = models.DateTimeField()
    # 限制输入1为男,0为女
    sex_choice = (
        (1, "男")
        (0, "女")
    )
    sex = models.SmallIntegerField(choices=sex_choice)

    # 约束 --生成的字段为guanlian_id
    # to --关联的哪张表   ,   to_field -- 表中的哪一列
    # 级联删除-department表的数据删除了,对应的userInfo表的使用department表中id属性的行也删除
    guanlian = models.ForeignKey(to="userInfo", to_field="id", on_delete=models.CASCADE())
    # 制空   null= True blank = True ---表示默认为空
    guanlian = models.ForeignKey(to="userInfo", to_field="id", null=True, blank=True, on_delete=models.SET_NULL)

 

你可能感兴趣的:(django,mysql,django,mysql,数据库)