1 create
def add_area(request):
area = Area.objects.create(name='commom',description='a commom area',manager='vicuic')
return HttpResponse('added successfully')
#具体的实现上,一般是web端使用post传递参数,然后再输入数据库,这里为了简便,所以直接设定值
2 select
def list_area(request):
areas = Area.objects.all()
return render(request,'mall/list_area.html',{'areas':areas})
#需要在网页上列出所有的信息,就从数据库中取出数据,然后用模板渲染并返回
blog_list = BlogPost.objects.all().order_by('-timestamp')
#查询结果按照时间戳降序排列
#去掉-为升序
lines = models.UserInfo.objects.filter(username='jab',pwd='123123')
#filter过滤,web端输入过滤参数,然后view负责从数据库中提取数据并返回
ret = list(config.objects.filter(id=id).values('dir'))[0] #objexts这个对象使用filter,返回查询集,然后values方法表示只要dir字段 #对查询集使用列表转换,然后取第一个数据
3 update
def update_area(request):
user = User.objects.get(username='vici')
Area.objects.filter(name='lovely').update(manager=user)
return HttpResponse('updated!')
#Area的manager字段为User的外键,先获取特定的User行赋值给user,然后在Area的行中做行更新。
#user是一个class,这里用get获取,才能将user作为外键赋值给manager
#如果用filter则返回一个查询集。无法赋值
4 delete
def delete_area(request):
# Area.objects.filter(name='lovely').delete()
User.objects.filter(username='vici').delete()
return HttpResponse('deleted!')
#由于Area的manager是User的外键,并且设置了级联删除,所以,当删除User中的一条数据,Area中引用这条数据的行都被删除了