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')

DjangoORM基本增删改查的更多相关文章

  1. 11)django-ORM(操作增删改查)

    ORM从增删改查等方面说明 一:创建数据 #创建数据两种方式1,推荐方式1 UserInfo.objects.create(username=") #方式1变种 user_dict={&qu ...

  2. django-orm框架表单的增删改查

    08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject dja ...

  3. Django-ORM增删改查

    ORM对单表进行增删改查 一,增加记录 #第一种方式 b=Book(name="Linux",price=66,author="kelvin",pub_date ...

  4. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  5. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  7. 通过Java代码实现对数据库的数据进行操作:增删改查

    在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao  xingming    xue ...

  8. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  9. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

随机推荐

  1. [CTSC1997]选课

    题面 题解 树形背包板子题. 设\(f[i][j]\)表示在以\(x\)为根的子树选\(j\)门课(包括\(x\))能够获得的最高学分,用分组背包转移即可. 代码 #include<cstdio ...

  2. cf 448c Painting Fence

    http://codeforces.com/problemset/problem/448/C 题目大意:给你一个栅栏,每次选一横排或竖排染色,求把全部染色的最少次数,一个点不能重复染色. 和这道题有点 ...

  3. DDD实战成绩管理---需求分析

    需求的分析我们采用四色模型.从用户故事中找出MI,然后围绕MI找出其中的role,ppt,des.本次先对两个优先级最高的用户故事进行四色模型建模. 1.用户故事一建模:作为教务处老师,我要建立教学班 ...

  4. Python3中IO文件操作的常见用法

    首先创建一个文件操作对象: f = open(file, mode, encoding) file指定文件的路径,可以是绝对路径,也可以是相对路径 文件的常见mode: mode = “r”   # ...

  5. ubuntu apt-xxx

    1. apt-get install xxx 2. dpkg -l ; list software already installed. 3. apt-cache dumpavail ; print ...

  6. 【Jmeter测试】如何使用CSV Data Set Config获取参数

      Jmeter提供CSV Data Set Config作为参数获取的一种方式​ ​ 1.文件名:csv文件的绝对路径2.文件编码:根据运行环境设置,个人常用的是mac和linux,所以这里选择UT ...

  7. js设置、修改、获取、删除 cookie

    上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...

  8. 如何更改Arcmap里经纬度小数点后面的位数?

    customize>arcmap option>data view >round coordinate to 改成想要显示的小数位数

  9. Python 中的实用数据挖掘

    本文是 2014 年 12 月我在布拉格经济大学做的名为‘ Python 数据科学’讲座的笔记.欢迎通过 @RadimRehurek 进行提问和评论. 本次讲座的目的是展示一些关于机器学习的高级概念. ...

  10. loadrunner socket协议问题归纳(0)

    一.概述         Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作.     二.socket概述         soc ...