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