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