wordpress 文件目录,seo网站关键词排名软件,注册公司核名,网站网页设计培训机构Django学习笔记
Django和Mysql数据库
Django开发操作数据库更简单#xff0c;内部提供了ORM框架。
1)安装mysqlclient
pip3 install mysqlclient2)ORM
ORM可以帮助我们做两件事#xff1a;
1.创建、修改、修改数据库中的表#xff08;不用写sql语句#xff09;[不能创…Django学习笔记
Django和Mysql数据库
Django开发操作数据库更简单内部提供了ORM框架。
1)安装mysqlclient
pip3 install mysqlclient2)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_length32) #定义name字段password models.CharField(max_length16) #定义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退出可以在类中将将新增字段添加一个默认值
如
sixmodels.CharField(max_length4,defalutl)或者设置新增字段允许为空
sixmodels.CharField(max_length4,nullTrue,blankTrue)1.13操作数据
1新增记录
from app1 import models #引入models模块
models.class_name.objects.create(field1value,field2value.....)#相当于以下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(fieldnew value)
#修改符合条件的记录的指定字段值
models.class_name.objects.filter(条件.update(fieldnew value)