objects.get() 取到一个对象[特点是取不到值就会报错] models.类名.objects.exclude(

时间:2022-01-20 06:30:34

前情回顾一下,:

django项目

安置:

创建项目

配置(setting,static,csrf)

创建app,python manage.py startapp app1

三部分

urls.py路由配置

1,普通正则

2分组正则

传位置参数:url(r‘^blog/(\d+)/‘,views.blog)

3分组定名(得到的是关键字参数)

url(r‘^blog/(?P<year>(\d+)/‘,views.blog‘))    视图函数要传参blog(request,year)

4用name指定别号

url(r‘^blog/$‘, views.blog, name=‘blog‘) 这里我们使用别号来进行反向解析,为了得到动态的HTML页面跳转效果

html里面:{%url ‘blog‘%}

views函数里面from django.urls import reverse

函数返回值里面return reverse("blog")

5使用定名空间

url(r‘^blog/‘, include(app1.urls,namespace=‘num1‘ 2017 12))  这里也牵涉到反向解析

HTML里面{% url ‘num1:blog‘%}  url后面空一格写单引号,引号里面写namespace然后冒号name

views里面:from django.urls import reverse 返回值return redirect(reverse("num1:blog",arg=(2017,12)))

views.py

request东西

response东西

FBV和CBV

模板语言

{{变量}}

{{变量.}}如果变量是一个字典,我们直接使用这样的要领去取值

{%for%}循环

{%endfor%}结束循环

{%if%}判断

{%endif%}结束判断

过滤器(filter)  {{变量名|filter_name:参数}}

{{时间东西|date:‘Y-m-d‘}}

{%url%}

{%load static%}

{%static ‘img/1.png‘%}

母板,担任,块,组件

连接数据库(orm)

五步四部分

1创建数据库

2在app下的models.py里面创建model类,担任models.Model

3.在setting.py里面配置数据库连接信息

4在项目project的init里面写上import pymysql, pymysql.install_as_mysqldb()  # 这一句使用我们的pycharm会自动补全,有提示信息

5,发命令

python manage.py makemigrations  # 收集变换

python manage.py migrate  # 翻译成sql语句执行

四部分

models.py

django

pymysql

mysql

orm:类   数据表

类的属性  

数据列 (内外面的字段)  

东西   数据行

对表格进行增删改查:

查:

models.类名,objects.all()  取到所有的数据是一个列表  [取不到值是不会报错的,就显示为空]

models.类名,objects.get()  取到一个东西[特点是取不到值就会报错]

models.类名.objects.exclude(条件)  得到除了这个条件的其他的功效

models.类名.objects.first()

models.类名.objects.last()

增加:

一种方法:

models.类名.objects.create(name=‘peter‘)

一种方法:

obj = models.类名(name=‘peter‘)

obj.save()

删除:

models.类名,objects.filter(age=19).delete()

改削:

models.类名.objects.filter(age=90).update(name=‘greate‘)

单个东西是不能够挪用update的

obj=models.类名.objects.get(id=1)

obj.name=‘green‘

obj.save()

今日内容:

单标的增删改查

单表盘问的api介绍:

13条常用数据:

返回的是queryset东西

1.all()

2.filter()

3.exclude()

4.values()

5.values_list()

6.order_by()

7.reverse()

8.distinct()

返回数字的:

count()

返回bool值的:

exists()

返回具体的数据东西的:

get()

first()

last()

logging配置参数:

logging={

‘version‘:1,  # 目前为止只有这一个值,当前使用版本

‘disable_existing_loggers‘:false,  # 不禁用已经存在的logger实例

# 界说一些日志的措置惩罚惩罚方法

‘handlers‘:{

‘console‘:{

‘level‘:‘‘DEBUG‘‘,

‘class‘:‘logging.streamhandler‘,

},

},

‘loggers‘:{

‘django.db.backends‘:{

‘handlers‘:[‘console‘],

‘propagate‘:True,  # 向上传导

‘level‘:‘‘DEBUG‘‘,