Django 基础

Posted chenyang13677

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 基础相关的知识,希望对你有一定的参考价值。

 


在model里面

models.CharField(max_length=300) #文本,必须加上 max_length=100
models.IntegerField  #整形
models.DecimalField  #设定范围,小数
models.EmailField  #邮箱
models.GenericIPAddressField   #IP
models.DateTimeField   #日期,时间
models.ForeignKey  #主键

verbose_name=‘学生成绩‘ #设置名称

max_digits=5 #最大位数

decimal_places=2 #允许几位小数

null=True #数据库中可以为空

blank=True #允许为空
auto_now_add=True   #当前日期
# 主键id  自动生成一个字段,自增,主键
# null=True 数据库中可以为空
# blank=True django自带后台允许为空


# 给学生一个实例(对象)起别名 python2 写法
def __unicode__(self):
return self.name

# python3 写法
def __str__(self):
return self.name

# 给表配置一些信息
class Meta:
verbose_name = verbose_name_plural = ‘学生表‘


在views里面

import models
def add(request):
# object 模型管理器
# 增加 方法1
# s1 = models.Student()
# s1.name = ‘小美‘
# s1.age = 8
# s1.score = 100.11
# s1.email = ‘[email protected]
# s1.save()
# print s1,type(s1)

# 增加方法2
# s1 = models.Student(name=‘小妹‘,age=‘16‘,score=‘88.88‘)
# s1.save()

# 增加方法 3
# models.Student.objects.create(name=‘小媚‘,age=‘17‘,score=‘77.77‘)

# 增加方法 4
stu_info = {
‘name‘ : u‘XIAOMEI‘,
‘age‘ : 15,
‘score‘ : 66.66,
}
models.Student.objects.create(**stu_info)

return HttpResponse(‘ok‘)

# 删除
def delete(request):
# filter 过滤器,相当于where条件
res = models.Student.objects.filter(pk=14).delete()
print res
return HttpResponse(‘ok‘)

# 更新
def update(request):
# 返回值:影响记录条数
res = models.Student.objects.filter(pk=1).update(score=300,age=16)
print res
return HttpResponse(‘ok‘)

# 查询
def select(request):
# select * from student
# query 获取查询语句
# stus = models.Student.objects.all()

# s1 = models.Student.objects.get(pk=19)
# print s1

# gt 大于
# lt 小于

#stus = models.Student.objects.filter(id=20)
#stus = models.Student.objects.filter(name__exact=‘xiaomei‘,score__gt=100)
#stus = models.Student.objects.filter(id__gt=10)[0:3]
# stus = models.Student.objects.all()
# stus = list(stus) #转成列表
# stus1 = stus[:3] # 获取前三条

# # 获取后三条
# stus.reverse()
# stus2 = stus[:3]
#
# print stus1
# print stus2

# 模糊查询
#stus = models.Student.objects.filter(name__icontains=‘xiao‘) 忽略大小写
# stus = models.Student.objects.filter(name__contains=‘xiao‘) # 不忽略大小写
# print stus.query
# print stus

# 正则表达式查询
# stus = models.Student.objects.filter(name__regex=‘^X‘).all()
# print stus

# stus = models.Student.objects.filter(name__iregex=‘梅$‘).all()
# print stus,type(stus)

# 按照某个字段倒序排列 加 “-”
# stus = models.Student.objects.all().order_by(‘-id‘)
# stus = models.Student.objects.all().order_by(‘-age‘,‘-score‘)
# for stu in stus:
# print stu.id,stu.name,stu.age,stu.score

# 去重复
# stus = models.Student.objects.all().values(‘name‘,‘age‘)
# print stus
# for stu in stus:
# print stu[‘name‘],stu[‘age‘]

# stus = models.Student.objects.all().values_list(‘name‘,‘age‘) # [(‘xiaomei‘,20),(),()]
# print stus
# for stu in stus:
# print stu[0],stu[1]

# 去重
# stus = models.Student.objects.all().values(‘name‘,‘score‘).distinct()
# print stus
# print stus.count()

# 聚合查询
# res = models.Student.objects.all().values(‘age‘).annotate(c=Count(‘age‘)).values(‘age‘,‘c‘)
# res = models.Student.objects.all().values(‘name‘).annotate(c=Count(‘name‘)).values(‘name‘, ‘c‘)
# print res

# 聚合求平均值
# res = models.Student.objects.all().values(‘name‘).annotate(score_avg=Avg(‘score‘))
# for item in res:
# print item[‘name‘],item[‘score_avg‘]

# 聚合求和
# res = models.Student.objects.all().values(‘name‘).annotate(score_sum=Sum(‘score‘))
# for item in res:
# print item[‘name‘],item[‘score_sum‘]

# res = models.Student.objects.all().values(‘cls‘).annotate(score_avg=Avg(‘score‘)).values(‘cls__name‘,‘cls__id‘,‘score_avg‘)
# print res

# 跨表查询

stus = models.Student.objects.all()
for stu in stus:
print stu.name,stu.age,stu.cls.name,stu.cls.id
return HttpResponse(‘ok‘)


 

以上是关于Django 基础的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

[vscode]--HTML代码片段(基础版,reactvuejquery)

Django REST框架--认证和权限

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

python 通过django片段很多很多