Django 数据库增删改查

一、数据库配置:

django默认使用的是自带的sqlite数据库

如果想改其他数据库,需要在settings配置文件中配置

1.settings文件中配置
                DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'day51',
                'HOST':'127.0.0.1',
                'PORT':3306,
                'USER':'root',
                'PASSWORD':'123',
                'CHARSET':'utf8'
            }
}
2.还要在项目名下的init文件或者是应用名下的init文件中告诉django不要使用默认的mysqldb连接mysql
        而是使用pymysql
            import pymysql
            pymysql.install_as_MySQLdb()

二、创建模型类

class User(models.Model):
     # 将id字段设置为User表主键字段  在django orm中 你可以不写主键字典  django会默认给你的表创建一个名为id的主键字段
      # id = models.AutoField(primary_key=True)  # 一旦你自己指定了主键字段 那么django就不会自动再帮你创建了
      username = models.CharField(max_length=32)  # username varchar(32)   CharField必须要指定max_length参数
      password = models.IntegerField()  # password int



*************************需要执行数据库迁移(同步)命令****************************** python3 manage.py makemigrations # 仅仅是在小本本上(migrations文件夹)记录数据库的修改 并不会直接操作数据 python3 manage.py migrate # 将数据库修改记录 真正同步到数据库
  注意:只要动了models中跟数据库相关的代码 就必须重新执行上面的两条命令 缺一不可(******)

三、表字段增删改查

  当表已创建,后续添加新字段,有两种方式:

    1.给新的字段设默认值:

addr = models.CharField(max_length=32,default='China')  # default该字段默认值

    2.给新增的字段设置成可以为空

age = models.IntegerField(null=True)  # 该字段允许为空

  删除

  直接在models.py中注释该字段,然后重新执行两条命令即可

四、数据增删改查

 

数据的查
        from app01 import models
        
        models.User.objects.all()  # 直接拿所有的数据
        
        models.User.objects.get(username=username)  
        
        res = models.User.objects.filter(username=username)
        res.query 
        
        user_obj = res.first()
        
    数据的增
        1.
        models.User.objects.create(username=username,password=password)
        2.
        user_obj = models.User(username=username,password=password)
        user_obj.save()
    
    删
        models.User.objects.filter(条件).delete()
    
    改
        models.User.objects.filter(条件).update()

五、用户的增删改查

用户的增删改查
        1.通过orm展示所有的到前端
            all()
            模板语法for循环
        2.添加新增按钮 (用户的新增操作)
            a标签的href直接触发后端逻辑
            create()
        3.添加编辑 删除按钮
            编辑
            删除
                利用get请求携带参数的特点  在url的后面跟上对应数据的id值
                request.GET.get()
                
                如果是编辑 
                    重新渲染一个页面 将编辑对象传递到前端
                
                如果是删除
                    直接利用filter(...).delete()
原文地址:https://www.cnblogs.com/xiaowangba9494/p/11530542.html