• 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')
    
  • 相关阅读:
    树上DP
    区间dp
    [持续更新]学习并记忆 Linux 下的常用的命令
    区间dp
    codevs 2152
    树上DP入门题
    差分与前缀和
    POJ
    VJ
    Week 5: Object Oriented Programming 9. Classes and Inheritance Exercise: int set
  • 原文地址:https://www.cnblogs.com/momo8238/p/7519087.html
Copyright © 2020-2023  润新知