标签:创建 create 改查 数据库 objects UserInfo password data 连接
1.视频 【1-11、1-12、1-13、1-14、1-15、1-16】
https://www.bilibili.com/video/BV1S44y1K7Hd?p=11
2.笔记
7.数据库操作
MySQL数据库 + pymysql
import pymysql # 1.连接MySQL conn = pymysql.connect(host="127.0.0.1", port=3306, user='root', passwd="root123", charset='utf8', db='unicom') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 2.发送指令 cursor.execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123','15155555555')") conn.commit() # 3.关闭 cursor.close() conn.close()
Django开发操作数据库更简单,内部提供了ORM框架。
7.1 安装第三方模块
pip install mysqlclient
7.2 ORM
ORM可以帮助我们做两件事:
-
创建、修改、删除数据库中的表(不用你写SQL语句)。 【无法创建数据库】
-
操作表中的数据(不用写SQL语句)。
1. 自己创建数据库
-
启动MySQL服务
-
自带工具创建数据库
create database gx_day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
2. django连接数据库
在settings.py文件中进行配置和修改。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'gx_day15', # 数据库名字 'USER': 'root', 'PASSWORD': 'root123', 'HOST': '127.0.0.1', # 那台机器安装了MySQL 'PORT': 3306, } }
3.django操作表
-
创建表
-
删除表
-
修改表
创建表:在models.py文件中
实际对应执行的命令:
create table app01_userinfo( id bigint auto_increment primary key, name varchar(32), password varchar(64), age int )
执行命令:
python3.9 manage.py makemigrations python3.9 manage.py migrate
注意:app需要提前注册。
如果不想要表和字段,注释即可,然后重新执行两个迁移操作即可
但如果在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:
解决方法:
1.手动输入一个值。
2.退出,
在定义中添加一个默认值
age = models.IntegerField(default=2)
定义为空
data = models.IntegerField(null=True, blank=True)
以后在开发中如果想要对表结构进行调整:
-
在models.py文件中操作类即可。
-
命令
python3.9 manage.py makemigrations python3.9 manage.py migrate
快捷执行方式:有提示
# 本质:insert into app01_userinfo(name)values('aaa') # UserInfo.objects.create(name='aaa', password='1',age=19)
表中数据操作:
from app01.models import UserInfo,Department # 测试ORM操作表中的数据 # 1.新建 # Department.objects.create(title='it') # Department.objects.create(title='hr') # Department.objects.create(title='ui') # UserInfo.objects.create(name='1', password='1',age=1) # UserInfo.objects.create(name='2', password='2') # 2.删除 # 删除指定一条数据 # UserInfo.objects.filter(id=2).delete() # # 删除所有数据 # UserInfo.objects.all().delete() # 3.获取数据 # 3.1 获取符合条件的所有数据 # data_list = [对象行、行、行] QuerySet类型 # data_list = UserInfo.objects.all() # print(data_list) # for object in data_list: # print(object.id, object.name, object.password) # 3.1 获取第一条数据[对象] # data_list = [对象行] # data_list = UserInfo.objects.filter(id=3) # print(data_list) # # 获取具体第一行内容 # row_obj = UserInfo.objects.filter(id=3).first() # print(row_obj.id, row_obj.name, row_obj.password, row_obj.age) # 4.更新数据 # 更新所有的 # UserInfo.objects.all().update(password=999) # # 更新指定的一条 # UserInfo.objects.filter(id=2).update(password=888)
标签:创建,create,改查,数据库,objects,UserInfo,password,data,连接 来源: https://www.cnblogs.com/jieperhaps/p/16625618.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。