0
点赞
收藏
分享

微信扫一扫

Django和Mysql数据库

zmhc 03-19 11:30 阅读 2

Django学习笔记

Django和Mysql数据库

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

1)安装mysqlclient

pip3 install mysqlclient

2)ORM

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

1.创建、修改、修改数据库中的表(不用写sql语句)[不能创建数据库]

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

3)创建数据库

create database database_name;

4)配置Django连接数据库

修改settings.py文件

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',       #数据库类型
        'NAME': 'helloWorld',                       #数据库名称
        'USER': 'root',                             #数据库用户名
        'PASSWORD': 'xxxx',                         #数据库密码
        'HOST': 'xxx.xxx.xxx.xxx',                  #数据库主机地址
        'PORT': '33060',                            #数据库端口号

    }
}

5)在modeles.py中创建一个用于生成表的类

from django.db import models

# Create your models here.
class userInfo(models.Model):     #这个类用于生成表
    name =  models.CharField(max_length=32)      #定义name字段
    password = models.CharField(max_length=16)   #定义password字段
    age = models.IntegerField()                  #定义age字段

"""
Django执行上面这个类的时候,相当于执行了建表操作(新建的表名为“app名_类名”),相当于以下代码:
create table app1_userinfo(
    id bigint auto_increment primary key,    
    name varchar(32),
    password varchar(16),
    age int
    )
"""

6)创建表,将数据自带表迁移到数据库中

python manage.py makemigrations    #生成迁移文件 
python manage.py migrate           #进行迁移

迁移完后,在数据库中应该可以看到一些django的表

注意:

如果不执行迁移,那么在使用的时候,有些数据需要存到自带的表中,那么就会报错。

这样就可以看到数据库中已创建好了一张表

在这里插入图片描述

如果要删除表,只需要把models.py中的类删除,重新执行表迁移就可以。

如果要修改表,只需要修改models.py中的类,重新执行表迁移就可以。

注意:

在新建 的表中会自动增加一个ID字段,并且为auto_increment 和primary key

如果在表中增加了新字段,进行迁移的时候会有两个选项:

选项1 :手动指定一个默认值;

选项2:退出,可以在类中将将新增字段添加一个默认值;

如:

six=models.CharField(max_length=4,defalut=l)

或者设置新增字段允许为空

six=models.CharField(max_length=4,null=True,blank=True)

1.13操作数据

1)新增记录

from app1 import models              #引入models模块
models.<class_name>.objects.create(<field1>=<value>,<field2>=<value>.....)

#相当于以下sql语句
#insert into <table_name> (<field1>,<field2>...) values(<value1>,<value2>.....)

2)删除记录

models.<class_name>.objects.filter(条件).delete()     #删除满足条件的数据
models.<class_name>.objects.all.delete()             #删除表中所有的数据

3)查询数据

data_list1 = models.<class_name>.objects.all()         #获取表中的所有数据QuerySet类型
for row in data_list1:                                  #遍历所有数据
	print(row.<field>)                                  #获取指定字段的数据
data_list2 = models.<class_name>.objects.filter(条件)    #获取满足指定条件的数据

4)修改数据

#修改所有记录的指定字段值
models.<class_name>.objects.all().update(<field>=<new value>)
#修改符合条件的记录的指定字段值
models.<class_name>.objects.filter(条件).update(<field>=<new value>)
举报

相关推荐

0 条评论