• 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()
  • 相关阅读:
    com.alibaba.fastjson.JSONException: default constructor not found. class ……
    ActiveMQ伪集群部署
    #{}和${}的区别
    微信小程序——报错汇总
    PHP——base64的图片的另类上传方法
    PHP——base64的图片转为文件图片
    veu——引入iconfont图标
    vue——script内容详解
    webpack——阮一峰webpackDemo分析
    webpack——快速入门【一】
  • 原文地址:https://www.cnblogs.com/xiaowangba9494/p/11530542.html
Copyright © 2020-2023  润新知