1. Django ORM查询中select_related和prefetch_related的区别??
2. Django ORM是什么?
3. Django创建项目的命令?
django-admin startproject 项目名称
python manage.py startapp 应用 app 名
4. Django 创建项目后,项目文件夹下的组成部分(对mvt 的理解)?
项目文件夹下的组成部分:
manage.py 是项目运行的入口,指定配置文件路径。
与项目同名的目录,包含项目的配置文件。
__init__
.py 是一个空文件,作用是这个目录可以被当作包使用,也可以做一些初始化操作。
settings.py 是项目的整体配置文件。
urls.py 是项目的 URL 配置文件。
wsgi.py 是项目与 WSGI 兼容的 Web 服务器。
5. 对 MVC,MVT解读的理解?
M:Model,模型,和数据库进行交互
V:View,视图,负责产生Html页面
C:Controller,控制器,接收请求,进行处理,与M和V进行交互,返回应答。
1、 用户点击注按钮,将要注册的信息发送给网站服务器。
2、 Controller控制器接收到用户的注册信息,Controller会告诉Model层将用户的注册信息保存到数据库
3、 Model层将用户的注册信息保存到数据库
4、 数据保存之后将保存的结果返回给Model模型,
5、 Model层将保存的结果返回给Controller控制器。
6、 Controller控制器收到保存的结果之后,或告诉View视图,view视图产生一个html页面。
7、 View将产生的Html页面的内容给了Controller控制器。
8、 Controller将Html页面的内容返回给浏览器。
9、 浏览器接受到服务器Controller返回的Html页面进行解析展示。
M:Model,模型,和MVC中的M功能相同,和数据库进行交互。
V:view,视图,和MVC中的C功能相同,接收请求,进行处理,与M和T进行交互,返回应答。
T:Template,模板,和MVC中的V功能相同,产生Html页面
1、 用户点击注册按钮,将要注册的内容发送给网站的服务器。
2、 View视图,接收到用户发来的注册数据,View告诉Model将用户的注册信息保存进数据库。
3、 Model层将用户的注册信息保存到数据库中。
4、 数据库将保存的结果返回给Model
5、 Model将保存的结果给View视图。
6、 View视图告诉Template模板去产生一个Html页面。
7、 Template生成html内容返回给View视图。
8、 View将html页面内容返回给浏览器。
9、 浏览器拿到view返回的html页面内容进行解析,展示。
6. Django中models利用ORM对Mysql进行查表的语句(多个语句)?
字段查询
all():返回模型类对应表格中的所有数据。
get():返回表格中满足条件的一条数据,如果查到多条数据,则抛异常:MultipleObjectsReturned,
查询不到数据,则抛异常:DoesNotExist。
filter():参数写查询条件,返回满足条件 QuerySet 集合数据。
条件格式:
模型类属性名__条件名=值
注意:此处是模型类属性名,不是表中的字段名
关于 filter 具体案例如下:
判等 exact。
模糊查询 like
例:查询书名包含’传’的图书。contains
空查询 where 字段名 isnull
范围查询 where id in (1,3,5)
比较查询 gt lt(less than) gte(equal) lte
日期查询
exclude:返回不满足条件的数据。
F 对象
作用:用于类属性之间的比较条件。
Q 对象
作用:用于查询时的逻辑条件。可以对 Q 对象进行&|~操作。
order_by 返回 QuerySet
作用:对查询结果进行排序。
聚合函数
作用:对查询结果进行聚合操作。
aggregate:调用这个函数来使用聚合。
{‘id__count’: 5} 注意返回值类型及键名
{‘bread__sum’:120} 注意返回值类型及键名
count 函数
作用:统计满足条件数据的数目。
例:统计所有图书的数目。
例:统计 id 大于 3 的所有图书的数目。
模型类关系
一对多关系
例:图书类-英雄类
models.ForeignKey() 定义在多的类中。
2)多对多关系
例:新闻类-新闻类型类
models.ManyToManyField() 定义在哪个类中都可以。
3)一对一关系
例:员工基本信息类-员工详细信息类
models.OneToOneField() 定义在哪个类中都可以。