Django orm查询 学习笔记

 

 

1,新建项目

2,编辑app目录里的models.py

3,定义一个类,类名等于数据库的表名

class User (models.model):

  #id=models.AutoField(primary_key=True)

  user=models.CharField(max_length=32)

  pwd=models.CharField(max_length=32)

4,然后进行 迁移数据库

  python manage.py makemigrations  #生成迁移文件

  python manage.py migrate  #生成数据库

5,去db.sqlite3数据库手动添加两条数据

6,然后编辑app目录下 views.py

  先引进 HttpResponse,redirect

  from django.shortcuts import render,HttpResponse,redirect

  再引进 models

  from app01 import models

  定义函数 

    def index(request):

      obj=models.User.objects.get(id=1)

      print(obj)

      print(obj.user,obj.pwd)

      return HttpResponse("hello ok")

  本节views.py学习完整代码如下: 

from django.shortcuts import render,HttpResponse,redirect
from Yux_app import models
import datetime
# Create your views here.

def index(request):
    #obj=models.User.objects.get(id=1)
    # print(obj)    #User object (1)
    # print(obj.user,obj.pwd)
    # obj.delete()    #删除
    # obj1=models.User.objects.filter(id=1)
    # print(obj1)     #<QuerySet [<User: User object (1)>]>
    # for i in obj1:
    #     print(i.user)
    obj2=models.User.objects.first()    #查询最早注册
    print(obj2,obj2.user)   #User object (1) 王钰鑫
    obj3=models.User.objects.last()     #查询最新最后注册
    print(obj3,obj3.user)   #User object (4) 反恐精英

    obj4=models.User.objects.filter(user="王钰鑫").first()     #查询最早注册的王钰鑫
    print(obj4.user,obj4.id)    
    obj5=models.User.objects.all()      #查询所有
    for i2 in obj5:
        print(i2.user)
    return HttpResponse("HI OK")

 

 

#添加数据(两种方法)
    # models.User.objects.create(user="使命召唤",pwd=369)       #第一种方法

    # obj=models.User(user="csgo",pwd=159)                      #第二种方法
    # obj.save()
#更新数据(两种方法)
    # obj=models.User.objects.get(id=7)                         #第一种方法
    # obj.user="生化危机"
    # obj.save()    #obj 单条对象

    # obj=models.User.objects.filter(id=7)                      #第二种方法
    # obj.update(user="csgo_2")

 

 

7,去项目目录下的urls.py

  先引进  

  from app01 import views

  再定义

  urlpatterns = [

  path("admin/",admin.site.urls),

  path("index/",views.index)

]

8,运行项目

  执行代码:python manage.py runserver

 

 

orm学习知识点笔记

models
  类:表名
  属性:字段(表头)
  对象:数据行 models.User.objects.******* 得到数据行对象obj
查询方法
单条查询
get
  有结果会查询出来
  无结果时,会报错,对程序来说,不合适
first() 不要加参数
last () 不要加参数
queryset对象
filter()
没有查询到结果 得到空对象 <QuerySet []>
all()
得到所有对象
增 (2种方法) create
  models.User.objects.create(user="王思远",pwd=900)
  obj = models.User(user="hello",pwd=111)
  # obj.save()
改(2种方法)
  obj = models.User.objects.get(id=9)
  # obj.user = "c1908"
  # obj.save() #obj 单条对象
  update 接受queryset 对象,单个对象不可以
  obj = models.User.objects.filter(id=9)
  obj.update(user="hello")
  obj.delete() obj 单个对象 queryset对象

 

 

posted @ 2020-03-17 11:54  yux_W  阅读(133)  评论(0)    收藏  举报