1 普通正則
2 分組正則 ?
url(r'/blog/(\d+)/(\d+)',views.blog) ? ? blog(request,arq1,arq2) 按照位置傳參
3 分組命名
url(r'/blog/(?P<year>\d+)/(?P<month>\d+)',views.blog) ? ? blog(request,year,month)
4 ?用name 指定別名
url(r'/blog/(?P<year>\d+)/(?P<month>\d+)',views.blog,name ='blog') ? ? blog(request,year,month
涉及到了反向解析URL
4-1 在html里面:{% ?url 'blog' 2012 12%}
4-2from django.urls import reverse reverse ('blog',arg=(2013,11))
5 用namespace 指定命名空間
url(r'/app01/',inclue(app01.urls,namespace='app01))?
?涉及到了反向解析URL
5-1 HTML 里面{% url 'app01:blog' 2012 11%}
5-22 在views reverse('app01:blog' ,arg=(2010,33))
?--------------
通過get取值 和通關過分組取值的用法和對比

?
1 HTML 里面{% url 'app01:blog' 2012 11%}
2 在views reverse('app01:blog' ,arg=(2010,33))
要在Django Console 打印出有sq語句 在django 項目的配置信息中加上這個日志 而且引用
?

?
?
models 中插入這句在定義的類的下面的縮進行里 這樣打印出來的結果對象就會是實際的內容
def __str__(self):
return '{}{}'.format(self.cname,self.first_day)
單表查詢的增刪改查?
單表查詢的API 介紹 共13條
1 返回QuerySet對象的有8條
1 all():全部 2 filter():過濾 3 exclude():不包括?
4 value()值 5value_list() 值的列表 6 order_by() 排序正序
7 reverse() 反轉 8 distinct() 去重
?
?
?
models.Ban_list.objects.filter(id=7)
<QuerySet [<Ban_list: Linux 1212期2015-01-29>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)
(0.000) SELECT VERSION(); args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)
?









2返回數字的: 1 count():計數行數

3返回布爾值的:1exists():是否存在
4 返回的是對象的:1 get() 得到的是一個對象 2 first():第一個對象 3 last() :最后一個對象


以下都是在左下角Python Console
?
?1 Queryset 對象8個
?
models.Ban_list.objects.get(id=7)
(0.001) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.001) SELECT VERSION(); args=None
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7; args=(7,)
<Ban_list: Linux 1212期2015-01-29>
models.Ban_list.objects.all()
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>]>
(0.001) SELECT @@SQL_AUTO_IS_NULL; args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
models.Ban_list.objects.filter(id=7)
<QuerySet [<Ban_list: Linux 1212期2015-01-29>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)
(0.000) SELECT VERSION(); args=None
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7 LIMIT 21; args=(7,)
models.Ban_list.objects.filter(cname='大數據1班').first()
<Ban_list: 大數據1班2020-12-01>
(0.061) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` = '大數據1班' ORDER BY `app0001_ban_list`.`id` ASC LIMIT 1; args=('大數據1班',)
models.Ban_list.objects.exclue(cname='大數據1班')
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'Manager' object has no attribute 'exclue'
models.Ban_list.objects.exclude(cname='大數據1班')
(0.005) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python?19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
models.Ban_list.objects.exclude(cname='大數據1班').values('cname')
<QuerySet [{'cname': 'Python 18期'}, {'cname': 'Linux 1212期'}, {'cname': 'Python 11期'}, {'cname': 'Linux 4期'}, {'cname': 'Python 19期'}, {'cname': '大數據2班'}]>
(0.002) SELECT `app0001_ban_list`.`cname` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
(0.001) SELECT `app0001_ban_list`.`cname` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
models.Ban_list.objects.exclude(cname='大數據1班').values('cname','first_day')
(0.001) SELECT `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
<QuerySet [{'cname': 'Python 18期', 'first_day': datetime.date(2023, 10, 19)}, {'cname': 'Linux 1212期', 'first_day': datetime.date(2015, 1, 29)}, {'cname': 'Python 11期', 'first_day': datetime.date(2012, 9, 1)}, {'cname': 'Linux 4期', 'first_day': datetime.date(2019, 12, 23)}, {'cname': 'Python 19期', 'first_day': datetime.date(2016, 10, 19)}, {'cname': '大數據2班', 'first_day': datetime.date(2017, 10, 28)}]>
(0.001) SELECT `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
models.Ban_list.objects.exclude(cname='大數據1班').values_list('cname','first_day')
(0.003) SELECT `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
<QuerySet [('Python 18期', datetime.date(2023, 10, 19)), ('Linux 1212期', datetime.date(2015, 1, 29)), ('Python 11期', datetime.date(2012, 9, 1)), ('Linux 4期', datetime.date(2019, 12, 23)), ('Python 19期', datetime.date(2016, 10, 19)), ('大數據2班', datetime.date(2017, 10, 28))]>
(0.001) SELECT `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') LIMIT 21; args=('大數據1班',)
models.Ban_list.objects.exclude(cname='大數據1班').order_by('first_day')
<QuerySet [<Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 18期2023-10-19>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') ORDER BY `app0001_ban_list`.`first_day` ASC LIMIT 21; args=('大數據1班',)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE NOT (`app0001_ban_list`.`cname` = '大數據1班') ORDER BY `app0001_ban_list`.`first_day` ASC LIMIT 21; args=('大數據1班',)
models.Ban_list.objects.all().order_by('first_day')
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`first_day` ASC LIMIT 21; args=()
<QuerySet [<Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 18期2023-10-19>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`first_day` ASC LIMIT 21; args=()
models.Ban_list.objects.all()
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
models.Ban_list.objects.all().order_by('id')
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` ASC LIMIT 21; args=()
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` ASC LIMIT 21; args=()
models.Ban_list.objects.all().order_by('-id')
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` DESC LIMIT 21; args=()
<QuerySet [<Ban_list: 大數據1班2018-01-10>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: Python 19期2016-10-19>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 11期2012-09-01>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: Python 18期2023-10-19>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` DESC LIMIT 21; args=()
models.Ban_list.objects.all().reverse()
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` LIMIT 21; args=()
models.Ban_list.objects.all().order_by('id').reverse()
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` DESC LIMIT 21; args=()
<QuerySet [<Ban_list: 大數據1班2018-01-10>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: Python 19期2016-10-19>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 11期2012-09-01>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: Python 18期2023-10-19>]>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` DESC LIMIT 21; args=()
models.Ban_list.objects.values('cname').distinct()
(0.003) SELECT DISTINCT `app0001_ban_list`.`cname` FROM `app0001_ban_list` LIMIT 21; args=()
<QuerySet [{'cname': 'Python 18期'}, {'cname': 'Linux 1212期'}, {'cname': '大數據1班'}, {'cname': 'Python 11期'}, {'cname': 'Linux 4期'}, {'cname': 'Python 19期'}, {'cname': '大數據2班'}]>
(0.002) SELECT DISTINCT `app0001_ban_list`.`cname` FROM `app0001_ban_list` LIMIT 21; args=()
?
2 數字的一個
models.Ban_list.objects.all().count()
8
(0.001) SELECT COUNT(*) AS `__count` FROM `app0001_ban_list`; args=()
3對象的3個
models.Ban_list.objects.all().first()
<Ban_list: Python 18期2023-10-19>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` ASC LIMIT 1; args=()
models.Ban_list.objects.all().last()
<Ban_list: 大數據1班2018-01-10>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` ORDER BY `app0001_ban_list`.`id` DESC LIMIT 1; args=()
models.Ban_list.objects.get(id=7)
<Ban_list: Linux 1212期2015-01-29>
(0.002) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` = 7; args=(7,)
?
models.Ban_list.objects.filter(first_day__month=12)
<QuerySet [<Ban_list: 大數據1班2020-12-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: linux 12期2017-12-12>]>
(0.014) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 LIMIT 21; args=(12,)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 LIMIT 21; args=(12,)
models.Ban_list.objects.filter(first_day__month=12,first_day__year=2018)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE (EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 AND `app0001_ban_list`.`first_day` BETWEEN '2018-01-01' AND '2018-12-31') LIMIT 21; args=(12, '2018-01-01', '2018-12-31')
<QuerySet []>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE (EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 AND `app0001_ban_list`.`first_day` BETWEEN '2018-01-01' AND '2018-12-31') LIMIT 21; args=(12, '2018-01-01', '2018-12-31')
?
邏輯運算
models.Ban_list.objects.filter(id__gt=1) ? 大于
(0.076) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` > 1 LIMIT 21; args=(1,)
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>, <Ban_list: 大數據1班2020-12-01>, <Ban_list: Python 11期2012-09-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: Python 19期2016-10-19>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>]>
(0.014) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` > 1 LIMIT 21; args=(1,)
models.Ban_list.objects.filter(id__lt=10) ?小于
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>]>
(0.017) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` < 10 LIMIT 21; args=(10,)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` < 10 LIMIT 21; args=(10,)
models.Ban_list.objects.filter(id__in=[2,7,2]) 包含里面
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` IN (2, 7) LIMIT 21; args=(2, 7)
<QuerySet [<Ban_list: Python 18期2023-10-19>, <Ban_list: Linux 1212期2015-01-29>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`id` IN (2, 7) LIMIT 21; args=(2, 7)
查找
models.Ban_list.objects.filter(cname__contains='大數據') ? ?模糊查找
(0.030) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` LIKE BINARY '%大數據%' LIMIT 21; args=('%大數據%',)
<QuerySet [<Ban_list: 大數據1班2020-12-01>, <Ban_list: 大數據2班2017-10-28>, <Ban_list: 大數據1班2018-01-10>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` LIKE BINARY '%大數據%' LIMIT 21; args=('%大數據%',)
?
不區分大小寫的cname__icontains
models.Ban_list.objects.filter(cname__icontains='linux')
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` LIKE '%linux%' LIMIT 21; args=('%linux%',)
<QuerySet [<Ban_list: Linux 1212期2015-01-29>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: linux 12期2017-12-12>]>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` LIKE '%linux%' LIMIT 21; args=('%linux%',)
關于時間查找
import datetime
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE `app0001_ban_list`.`cname` LIKE '%linux%' LIMIT 21; args=('%linux%',)
datetime.datetime.now()
datetime.datetime(2018, 1, 22, 21, 7, 48, 987579)
datetime.datetime.now().year
2018
datetime.datetime.now().day
22
?
models.Ban_list.objects.filter(first_day__month=12)
<QuerySet [<Ban_list: 大數據1班2020-12-01>, <Ban_list: Linux 4期2019-12-23>, <Ban_list: linux 12期2017-12-12>]>
(0.014) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 LIMIT 21; args=(12,)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 LIMIT 21; args=(12,)
models.Ban_list.objects.filter(first_day__month=12,first_day__year=2018)
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE (EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 AND `app0001_ban_list`.`first_day` BETWEEN '2018-01-01' AND '2018-12-31') LIMIT 21; args=(12, '2018-01-01', '2018-12-31')
<QuerySet []>
(0.001) SELECT `app0001_ban_list`.`id`, `app0001_ban_list`.`cname`, `app0001_ban_list`.`first_day` FROM `app0001_ban_list` WHERE (EXTRACT(MONTH FROM `app0001_ban_list`.`first_day`) = 12 AND `app0001_ban_list`.`first_day` BETWEEN '2018-01-01' AND '2018-12-31') LIMIT 21; args=(12, '2018-01-01', '2018-12-31')
?