DjangoORM基本增删改查

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')
原文地址:https://www.cnblogs.com/momo8238/p/7519087.html