DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'Djangoorm', #数据库名称 'USER': 'dongfei', #数据库用户名 'PASSWORD': 'dongfei', #数据库密码 'HOST': '192.168.56.101', #数据库主机,留空默认为localhost 'PORT': '3306', #数据库端口 } }
class Book(models.Model): #不写id字段Django会自动给加一个id字段,而且会将此字段设置为主键、自增加 name = models.CharField(max_length=30) price = models.FloatField() pub_date = models.DateField() author = models.CharField(max_length=20,null=False)
>pip3 install mysqlclient >python manage.py makemigrations >python manage.py migrate
from django.shortcuts import render,HttpResponse from app.models import * def addbook(request): b = Book(name="呐喊",price=38.8,author="鲁迅",pub_date="1923-08-01") b.save() return HttpResponse("添加成功")
from django.shortcuts import render,HttpResponse from app.models import * def addbook(request): Book.objects.create(name="彷徨",price=58.8,author="鲁迅",pub_date="1926-08-01") return HttpResponse("添加成功")
def update(request): Book.objects.filter(name="呐喊").update(price=48.88) return HttpResponse("修改为功")
def update(request): b = Book.objects.get(name="彷徨") b.price = 38.88 b.save() return HttpResponse("修改为功")
补充:打印SQL语句日志,在settings.py中加入如下代码html
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console':{ 'level':'DEBUG', 'class':'logging.StreamHandler', }, }, 'loggers': { 'django.db.backends': { 'handlers': ['console'], 'propagate': True, 'level':'DEBUG', }, } }
def delbook(request): Book.objects.filter(name="呐喊").delete() return HttpResponse("删除成功")
def select(request): book_list = Book.objects.filter(id=1) #拿到的是一个集合 book_list = Book.objects.exclude(id=2) #排除id=2的记录,和filter相反 book_list = Book.objects.get(id=1) #拿到的是一个对象 book_list = Book.objects.all()[:3] #取全部的记录,支持列表切片操做 book_list = Book.objects.first() #取第一条记录 book_list = Book.objects.last() #取最后一条记录 book_list = Book.objects.filter(author="余华").values("name","price") #具体取某个字段,返回字典 book_list = Book.objects.filter(author="余华").values_list("name","price") #具体取某个字段,返回元组 book_list = Book.objects.all().values("name").distinct() #去重 book_list = Book.objects.all().order_by("price") #排序 book_list = Book.objects.all().order_by("price").reverse() #反向排序 book_list = Book.objects.all().order_by("price").count() #统计 book_list = Book.objects.filter(price__gt=30).values("name","price") #查询价格大于30的 book_list = Book.objects.filter(name__icontains="小") #查询书名中包含”小“的书籍 return render(request,'index.html',{"book_list": book_list})
Book.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 Book.objects.filter(id__in=[11, 22, 33]) # 获取id等于十一、2二、33的数据 Book.objects.filter(id__in=[11, 22, 33]) # not in Book.objects.filter(name__contains="小") #包含 Book.objects.filter(name__icontains="小") # icontains大小写不敏感 Book.objects.filter(id__range=[1, 2]) # 范围bettwen and