Django是一个python开发的大而全的web框架,而且其文件结构完善,配置合理,使得开发者使用方便,容易掌握.对于开发者来说是一款比较理想的框架.最近前后端分离的开发模式大行于世,也使得Django的使用更加火热.
Django的框架设计在遵循MVC设计思想的同时,开发了属于自己的一套框架设计思想,即MTV,相比于MVC来说,MVT的框架设计思想中的每个构件分工更加明确.Model即模型,用来数据库操作;View视图文件,用来接收用户请求,进行逻辑处理,渲染页面,将结果返回给用户;Template模板,用来加载页面.
Django的数据操作,采用的是ORM(对象关系映射)设计技术,其在提供了完备的增删改查操作之外,还提供了一对一,一对多,多对多的关系映射,和两个特别的查询方式,F查询和Q查询.F查询:对同一表中的字段设置比较条件进行查询,Q查询,提供逻辑查询
创建模型:
class User(models.Model):
"""
用户表
"""
user_name = models.CharField(max_length=32)
password = models.CharField(max_length=32)
user_number = models.CharField(max_length=32,default = "0")
添加数据:
user = User()
user.user_name = "张三"
user.passeord = "123456"(一般需要加密)
user.save()
user.user_number = str(user.id).zfile(8)
user.save()
查询数据
查询所有
all_user= User.objects.all()
查询一条
user = User.objects.filter(id = 1).first()
user = User.objects.filter(id = 1).first()
查部分
user_list = User.objects.filter(id__lt=10).all()
聚合查
user_list = User.objects.filter(id__lt=10).aggregate(count(id))
顺序查
user_list = User.objects.filter(id__lt=10).order_by("-id")
分组查
user_list = User.objects.filter(id__lt =10).values(id)
F查询
goods_list = Goods.objects.filter(price__lt = F(old_peice)).all()
Q查询
user_list = User.objects.filter(Q(id__gt=10)|Q(user_name = '张三')).all()
删除数据
user = User.objects.filter(id = 1).first()
user.delete()
修改数据
user = User.objects.filter(id = 1).first()
user.name = "李四"
user.save()
一对一关系构建
class UserInfo(models.Model):
nick_name = models.CharField(max_length = 32)
phone = models.CharField(max_length = 32)
user_id = models.OneToOneField(to=User,on_delete = models.CASCADE)
一对多关系构建
class order(models.Model):
o_u = models.Foreignkey(to=User,on_delete=models.CASCADE)
多对多构建
class Goods(models.Model):
g_u = models.ManyToMany(to=User)