当前位置: 首页 > news >正文

Django之旅:第五节--Mysql数据库操作(一)

Django开发操作数据库更简单,内部提供了ORM框架

一、安装第三方模块

pip install mysqlclient

注:最新的django框架需要使用mysqlclient模块,之前pymysql模块与django框架有编码兼容问题。

二、ORM

        1、ORM可以帮助我们做两件事:

            创建、修改、删除数据库中的表(不用写sql语句)(没有办法创建数据库)。

            操作表中的数据(不用写sql语句)

        2、创建数据库

                2.1、启动Mysql服务

                2.2、创建数据库

create database 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#操作数据库指令

#登录
mysql -u root(mysql用户名) -p

#查看数据库
show databases;

三、Django连接数据库

在setting.py文件中进行配置和修改

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'index_day',  # 数据库
        'USER': 'root',
        'PASSWORD': '12345678',
        'HOST': '127.0.0.1',  # mysql那台机器的ip
        'PORT': '3306',
    }
}

四、Django操作表

        1、创建表(models.py文件中操作)


from django.db import mmodels

class UserInfo(models.Model):
    name=models.CharFIeld(max_length=32)
    password=models.CharFIeld(max_length=64)
    age=models.IntegerFIeld()

"""
上面类等于以下sql语句
cerate table app项目名_userinfo(
    id bigint auto_increment primary key,
    name varchar(32),
    password varchar(64),
    age int
"""

        完成以上,需要执行以下命令,生成表(app需要提前注册)

python manage.py makemigrations
python manage.py migrate

        2、删除表


from django.db import mmodels

class UserInfo(models.Model):
    name=models.CharFIeld(max_length=32)
    password=models.CharFIeld(max_length=64)
    #age=models.IntegerFIeld()

       注:只要把对应的类或者字段注销或者删除,在执行以下

python manage.py makemigrations
python manage.py migrate

        3、修改表

        注:在修改表,添加字段如果表本身有数据,需要默认值,或者设置默认可以为空。

                如果类里面,字段不设置默认值,在执行命令行代码时也会提示,属于默认值或者退出


from django.db import mmodels

class UserInfo(models.Model):
    name=models.CharFIeld(max_length=32)
    password=models.CharFIeld(max_length=64)
    #age=models.IntegerFIeld()
    
    data=models.IntegerField(defaul=2)#新字段默认为值为2

    content=models.IntegerField(null=True,blank=True)#新字段默认为值为空
    

        再次执行该命令:

python manage.py makemigrations
python manage.py migrate

五、总结:

        在以后的开发中如果想要对表结构进行调整:

        在models.py文件中操作类就可以了

        在执行命令:

python manage.py makemigrations
python manage.py migrate

        

相关文章:

  • 鸿蒙HarmonyOS NEXT之无感监听
  • CSS rem、vw/vh、less
  • 【汽车传感系统架构:借助传感获取安全】
  • GAMES101-现代计算机图形学入门(Ray Tracing)
  • SpringBoot集成kafka极简教程
  • 宝塔:网站监控监控表没有数据异常处理
  • ROS多机通信(三)——Ubuntu Ad-Hoc 组网通信配置指南
  • 更新docker 容器时,提前换后端jar 包,为什么会存在异常
  • Oracle到达梦数据库迁移:技术要点与实践分享
  • Python SciPy面试题及参考答案
  • 推荐 --召回模型 DSSM, YoutubeDNNd
  • OPTICS聚类算法原理详解
  • 目标检测20年(四)——最终章
  • 使用MyBatis Plus的QueryWrapper实现复杂的SQL查询
  • macbook电脑如何清理键盘防止误触
  • SpringBoot 3+ Lombok日志框架从logback改为Log4j2
  • 深入浅出Spring-Boot-3.x.pdf
  • 游戏引擎学习第184天
  • Linux操作系统7- 线程同步与互斥7(RingQueue环形队列生产者消费者模型改进)
  • RK3568 设备树基础语法讲解
  • 抗美援朝老战士宁昭逝世,享年93岁
  • 体重管理门诊来了,瘦不下来的我们有救了?|健康有方FM
  • 陕西省副省长窦敬丽已任宁夏回族自治区党委常委、统战部部长
  • 浦发银行一季度净利175.98亿增1.02%,不良率微降
  • 游客曝九寨沟打网约车被出租车围堵,官方:前者违规,后者做法不对
  • 京津冀“飘絮之困”如何破解?专家坦言仍面临关键技术瓶颈