django 笔记4 数据库操作
django操作数据库 orm操作 select * from tb where id > 1 对应关系 models.tb.objects.filter(id__gt=1) models.tb.objects.filter(id=1) models.tb.objects.filter(id__lt=1) 创建类 1 -根据类自动创建数据库表 #models.py操作 ####################################### from django.db import models # Create your models here. #表名会默认为app01_userinfo class UserInfo(models.Model): #创建用户名列 字符串类型 指定长度 #默认会创建个id列 且自增 为主键 username = models.CharField(max_length=32) password = models.CharField(max_length=64) ####################################### python manage.py makemigrations No changes detected 表示要去找models 所以在settings中的 INSTALLED_APPS=[添加个app名称] migrations记录了生成数据库表结构的一些数据0001_initial.py python manage.py migrate 生成数据库且会生成表 2 -根据类对数据库表中的数据进行各种操作 若要改为MySQL连接 需要改settings 数据库配置文档 www.cnblogs.com/wupeiqi/articles/5237704.html DATABASES = { 'default':{ 'ENGINE':'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xx', 'HOST':'', 'PORT':'' } } 注意: MySQLdb模块在Python3是没有的 在project中的__init__.py 即settings同级的__init__.py文件添加 import pymysql pymysql.install_as_MySQLdb() 增删改查 ################################################################# from app01 import models def orm(request): #创建数据的方法1 一行插入数据 models.UserInfo.objects.create( username='root', password='123' ) #创建数据的方法2 obj = models.UserInfo(username='ljc',password='123') obj.save() #创建数据方法3 dic = {'username':'eric', 'password':'123'} models.UserInfo.objects.create(**dic) return HttpResponse('orm') def select(request): #查找数据 result = models.UserInfo.objects.all() #表示所有数据都拿到 #result QuerySet 是Django提供的 可以理解为列表[] #[obj1(id, username, password), obj2, obj3] 是UserInfo的对象 for row in result: print(row.id,row.username, row.password) result = models.UserInfo.objects.filter(username="root") #查找条件 username='root'的 如果username,password 是and共同拥有 for i in result: print(i.username) return HttpResponse(result[1]) def delete(request): #删除数据 models.UserInfo.objects.filter(id=4).delete() #filter类似where条件 return HttpResponse(123) def update(request): #修改数据 models.UserInfo.objects.all().update(password=666) #将密码全部改为666 return HttpResponse(123) #################################################################
原谅我这一生不羁放纵爱自由