实习日记 2020-01-19

早晨闹铃响起,脑子里面还在想:今天是周一,要上班了~然后瞄了一眼日历……
欸?原来今天调休的嘛(从床上爬起来)

那既然这样,今天就继续研究一下Python~
内容包含:Django:M:查询相关函数,V:错误视图、URL参数传递,普通登录案例



查询相关函数

get 返回一条且只能有一条数据,返回值是一个对象,参数可以写查询条件。
all:返回模型类对应表的所有数据,返回值是QuerySet。
filter:返回满足条件的数据,返回值是QuerySet,参数可以写查询条件。
exclude:返回不满足条件的数据,返回值是QuerySet,参数可以写查询条件。
order_by:对查询结果进行排序,返回值是QuerySet,参数中写排序的字段。

from django.db.models import F, Q, Sum, Count, AVG, Max, Min

F对象:用于类属性之间的比较。
Q对象:用于条件之间的逻辑关系(与或非)。

aggregate:进行聚合操作,返回值是一个字典,进行聚合的时候,需要先导入聚合类。
count:返回结果集中数据的数目,返回值是一个数字。

注意:对一个QuerySet实例对象,可以继续调用上面的所有函数。

exists:判断一个查询集中是否有数据,有数据返回True,没数据时返回False


视图

错误视图

刚才自己写视图的时候,报告HTTP 500错误,但是直接用HttpResponse可以正常返回网页,仔细看了一下,视图return返回的时候写错了,记录一下,以免后续再出错。

URL匹配过程

上面已经出现过HTTP 500错误,还有一个常见的是HTTP 404错误,这两个错误都是在开发时常见的报错信息,如果项目开发结束,需要关闭这个详细错误信息页面。配置文件在 ./项目名/setting.py

这个是HTTP 404的例子

如何看懂错误信息

小结:
404 –> url没有配置、url配置错误
500 –> 视图(views.py)出错


捕获url参数

url匹配时,把所需要的捕获的部分设置成一个正则表达式组,这样Django框架就会自动把匹配成功后相应组的内容作为参数传递给视图函数。

url参数有两种形式:
1、位置参数:位置参数,参数名可以随意指定。
2、关键字参数:关键字参数,视图中参数名必须和正则表达式组名一致。


普通登录案例

显示出登录页面,设计url、视图和模板文件

错误处理:

如果报告 CSRF验证失败 ,注释掉setting.py中 ‘django.middleware.csrf.CsrfViewMiddleware’,

发表评论

电子邮件地址不会被公开。 必填项已用*标注