配置MySQL数据库的日志
配置mysql数据库日志是为了让你看到python代码在Mysql中转换为了怎样的查询。
- 下载baretail.exe文件,用来打开.log日志文件
- 默认情况下,mysql是日志状态是关闭的
mysql -u root -p在mysql的bin文件下面打开cmd。
show variables like 'general_log%';查看状态(默认为OFF)
set global general_log='on' ;
show variables like 'general_log%';再查看状态(现在是ON)
general_log_file的值就是日志的位置
- 然后用baretail.exe打开上述的.log日志文件。
查询函数
from app.models import BookInfo
#导包从来都不是最重要的,Alt+Enter。
def index(request):
#return render(request,'app/index1.html')
book = BookInfo.objects.get(id=1) #将返回值赋给book变量
text = str(book.bcomment)+str(book.bdate)+book.btitle #然后就可以用类中的属性了,注意相加时只能是字符串。
return HttpResponse(text)
通过
模型类.objects可以调用很多方法。
- .get(id=1)
相当于select * from 模型类 where id =1返回值是一个类(模型类),有且仅有一个,多了报错,不存在也报错。 - .all()
相当于select * from 模型类返回值是一个结果集,他不会立刻执行,只有在用到的时候才会发挥作用##################################
def index(request):
#return render(request,'app/index1.html')
# book = BookInfo.objects.get(id=1)
# text = str(book.bcomment)+str(book.bdate)+book.btitle
books=BookInfo.objects.all() #books是个结果集
text=''
for book in books : #结果集的每个对象都是BookInfo对象,把属性连接输出
text += str(book.bcomment) + str(book.bdate) + book.btitle #
text += '<br>' #输出到 html 中,所以换行可以这样。
return HttpResponse(text)
- .filter() 这就是个过滤器,筛选出满足条件的结果或结果集,参数写查询条件。
例如
text = ''
books =BookInfo.objects. filter(btitle='红楼梦')
for book in books:
text += str(book.bcomment) + str(book.bdate) + book.btitle
return HttpResponse(text)
- .exclude() 和上面的刚好相反,筛选不满住条件的结果集,参数写查询条件。
- .order_by() 排序,参数是按照谁进行排序。
条件运算符(主要在filter这种返回结果集)
- 字段__exact=是判断相等操作。
- 字段__contain=是模糊查询操作,相当于数据库中的like
- 字段__startwith=
- 字段__endwith=
- ...
当你键入参数时这个工具会有提示(例如 'btitle'就已经有提示了),没提示就可能有问题。
- 字段__isnull=False/True,某字段不为空/为空
- 字段(一般为id)__in= [1,4,7]
- 字段__gt=3 大于3 , __gte大于等于; __lt小于, __lte小于等于。
这是一般的类型,如果是日期查询的就###########看一下
books = BookInfo.objects.filter(date__year=1999)#这是查找1999年的用了__year取属性的year。找自己的日期类型的year属性。
books = BookInfo.objects.filter(date__gt=date(1998,8,18))这是查找在(1998,8,18)之后日期。











网友评论