Django 操作MySQL数据库

2023-05-06 21:00:17 浏览数 (2)


相关内容

MySQL的安装

https://blog.csdn.net/qq_59636442/article/details/123058454

一、配置数据库(修改settings.py配置信息)

代码语言:javascript复制
# 数据库配置 
# 注释或删除默认的数据库(sqlite)配置
# DATABASES = {
#     'default': {
#         'ENGINE': 'django.db.backends.sqlite3',
#         'NAME': BASE_DIR / 'db.sqlite3',
#     }
# }

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',# 数据库引擎
        'NAME':'mydb',#数据库名字
        'USER':'root',#用户名
        'PASSWORD':'123456',#密码
        'HOST':'127.0.0.1',# HOST
        'PORT':'3306',#端口
        'OPTIONS': {'charset':'utf8mb4'}, #打开数据库 编码格式 ——解决4字节表情无法储存问题
    }
}

二、安装pymysql(数据库引擎)

(在终端执行如下命令)

代码语言:javascript复制
pip3 install pymysql

三、models.py(数据模块,用于数据库设计)

1、创建一个用户表

代码语言:javascript复制
from django.db import models
# 需要创建应用
# Create your models here.
# 数据表名 应用名_类名

class Users(models.Model):
    uese_name = models.CharField('用户名',max_length=255,null=True)
    phone_number =  models.CharField('手机号',max_length=20)
    password = models.CharField('密码',max_length=255)
    register_date = models.DateTimeField('注册时间',auto_now_add=True)

#CharField和DateTimeField----数据类型
#max_length----最大长度
#auto_now_add----默认时间为创建时间

四、生成数据表(迁移文件)

1、生成迁移文件(在终端执行如下命令)

代码语言:javascript复制
python3 manage.py makemigrations

2、执行迁移文件(在终端执行如下命令)

代码语言:javascript复制
python3 manage.py migrate

五、增删改查

1、增加数据

代码语言:javascript复制
#类名.objects.create(字段=值,字段=值)
Users.objects.create(uese_name="张三",
                phone_number="888",
                password = "123456")

2、删除数据

代码语言:javascript复制
类名.objects.filter(字段=值).delete()
Users.objects.filter(phone_number="888").delete()

3、修改数据

代码语言:javascript复制
#类名.objects.get(字段=值)
sql = Users.objects.get(phone_number="888")#在查不到不到会报错
sql.password = "8888888"
sql.save()#提交数据 只有提交后才会被修改

4、查询数据

        获得单条数据

代码语言:javascript复制
#类名.objects.get(字段=值)
sql = Users.objects.get(phone_number="888")#在查不到不到会报错

password = sql.password                   #获得查询结果的password

        获得多条数据

代码语言:javascript复制
#类名.objects.filter(字段=值)
sql = Users.objects.filter(uese_name="张三")


#获得每一条查询结果的phone_number
for i in sql:
  print(i.phone_number)

        获得全部数据

代码语言:javascript复制
#类名.objects.all()
sql = Users.objects.all()

#获得每一条查询结果的phone_number
for i in sql:
  print(i.phone_number)

        增加查询范围

代码语言:javascript复制
#类名.objects.all()[开头:结束:步长]
#类名.objects.filter(uese_name="张三")[开头:结束:步长]
sql = Users.objects.all()[:10]#获取0-10条数据

#获得每一条查询结果的phone_number
for i in sql:
  print(i.phone_number)

0 人点赞