您的位置:首页 > 编程语言 > Go语言

DjangoORM基本增删改查

2017-09-14 09:46 246 查看
1. 下载并且安装navicat premium,连接到db.sqlite3数据库。



2.先在urls.py中增加一条对应关系,专门用来做测试。



3.此时models.py中的代码如下:



4. 对于ORM,如果你想对这个表增加一条数据,得通过UserInfo 这个类去数据库里面去增加。

所以需要先把这个模块导入。from django.db import models



4. 往数据库中增加一条数据。方法1:

models.UserInfo.objects.create(username='root',password='123')




效果:



5. 往数据库中增加一条数据。方法2:(写成一个字典,是方法一的变形)

dic={'username':'eric','password':'666'}

models.UserInfo.objects.create(**dic)




6. 往数据库中增加一条数据。方法3:

obj=models.UserInfo(username='alex',password='123')
obj.save()

效果:



7.小结:

def orm(request):
#创建方法1
#models.UserInfo.objects.create(username='root',password='123')
# 创建方法2
#dic={'username':'eric','password':'666'}
#models.UserInfo.objects.create(**dic)
# 创建方法3
#obj=models.UserInfo(username='alex',password='123')
#obj.save()


8.查

现在数据库中有3条数据



result=models.UserInfo.objects.all() 
#all表示把这个表中的所有数据都拿到。
# 返回的result是QuerySet类型的,这个类型是Django提供的。可以理解成QuerySet是个列表[]。
print(result)




9. 把列表中的信息打印出来。



10. filter就是where查询条件

result2 = models.UserInfo.objects.filter(username='root')
result2 = models.UserInfo.objects.filter(username='root',password='123') 表示and条件组合。

返回的也是一个列表类型,所有username='root' 的所有行的数据。



11.删除

#删除-所有数据
models.UserInfo.objects.all().delete()
#删除-某些数据
models.UserInfo.objects.filter(id=4).delete()


12.更新

#更新
models.UserInfo.objects.all().update(password=6669)
  models.UserInfo.objects.filter(id=3).update(password=69)




13.总结,views.py中程序如下。



from django.shortcuts import render,HttpResponse,redirect

# Create your views here.
# USER_DICT={
#     'k1':'root1',
#     'k2':'root2',
#     'k3':'root3',
#     'k4':'root4',
# }

# USER_LIST=[
#     {'name':'root'},
#     {'name':'root'},
#     {'name':'root'}
# ]
#
# {% for item in user_list %}
USER_DICT={
'1':{'name':'root1','email':'root@live.com'},
'2':{'name':'root2','email':'root@live.com'},
'3':{'name':'root3','email':'root@live.com'},
'4':{'name':'root4','email':'root@live.com'},
'5':{'name':'root5','email':'root@live.com'},
}
def index(request):
return render(request,'index.html',{'user_dict':USER_DICT})

def login(request):
if request.method=='GET':
return render(request,'login.html')
elif request.method=='POST':
#数据库中执行 select * from user where username='X' and password='Y'
return render(request,'login.html')
else:
# put,delete,head,option.....
return redirect('/index/')

# def login(request):
#     if request.method == 'GET':
#         return render(request, 'login.html')
#     elif request.method == 'POST':
#         # radio
#         # v1=request.POST.get('gender')
#         # print(v1)
#         # checkbox
#         # v2=request.POST.getlist('favor')
#         # print(v2)
#         # v3=request.POST.get('fafafa')
#         # print(v3)
#         obj = request.FILES.get('fafafa')
#         print(obj, type(obj), obj.name)
#         import os
#         file_path = os.path.join('upload', obj.name)
#         f = open(file_path, mode="wb")
#         for i in obj.chunks():
#             f.write(i)
#         f.close()
#
#         return render(request, 'login.html')
#     else:
#         # put,delete,head,option.....
#         return redirect('/index/')

# def detail(request,nid):
#     nid=request.GET.get('nid')
#     detail_info=USER_DICT[nid]
#     return render(request,'detail.html',{'detail_info':detail_info})
def detail(request,nid):
#return HttpResponse(nid)
detail_info=USER_DICT[nid]
return render(request,'detail.html',{'detail_info':detail_info})

from django.views import View
class Home(View):
def dispatch(self,request,*args,**kwargs):
#调用父类中的dispatch
print('before')
result=super(Home,self).dispatch(request,*args,**kwargs)
print('after')
return result

def get(self,request):
print(request.method)
return render(request,'home.html')
def post(self,request):
print(request.method)
return render(request,'home.html')

"""def login(request):
if request.method=='GET':
return render(request,'login.html')
elif request.method=='POST':
u = request.POST.get('user')
p = request.POST.get('pwd')
if u=='root' and p=='123':
return redirect('/index/')
else:
return render(request,'login.html')
else:
# put,delete,head,option.....
return redirect('/index/')
"""

from app01 import models
def orm(request):
#增,创建方法1
#models.UserInfo.objects.create(username='root',password='123')
# 增,创建方法2
#dic={'username':'eric','password':'666'}
#models.UserInfo.objects.create(**dic)
# 增,创建方法3
#obj=models.UserInfo(username='alex',password='123')
#obj.save()
#查
#result1=models.UserInfo.objects.all()
#result2 = models.UserInfo.objects.filter(username='root')
#all表示把这个表中的所有数据都拿到。
# 返回的result是QuerySet类型的,这个类型是Django提供的。可以把QuerySet理解成是个列表[]。
#[obj(id,username,password),obj(id,username,password),obj(id,username,password)]

#删除-所有数据
#models.UserInfo.objects.all().delete()
#删除-某些数据
#models.UserInfo.objects.filter(id=4).delete()

#更新
models.UserInfo.objects.all().update(password=6669)
for row in result1:
print(row.id,row.username,row.password)
print(result1)
return HttpResponse('orm')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: