web-Django面试题

1 django创建项目的命令?

	django-admin startproject 项目名称
	python manage.py startapp  应用app名

2 django创建项目后,项目文件夹下的组织部分(对mvt的理解)?
项目文件夹下的组成部分:

manage.py 是项目运行的入口,指定配置文件路径。
与项目同名的目录,包含项目的配置文件。
___init.py 是一个空文件,作用是这个目录可以被当作包使用。
settings.py 是项目的整体配置文件。
urls.py 是项目的URL 配置文件。
wsgi.py 是项目与WSGI 兼容的Web 服务器。

3 对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 页面内容进行解析,展示。

4 Django 中models 利用ORM 对Mysql 进行查表的语句(多个语句)?
字段查询

all():返回模型对应表格中的所有数据
get():返回表格中满足条件的一条数据,如果查到多条数据,则抛出异常:MultipleObjectsReturned,查询不到数据,则跑异常:DoesNotExist
filter():参数写查询条件,返回满足条件 QuerySet 集合数据
条件格式:
**模型类属性名**__条件名=值
注意:此处是模型类属性名,不是表中的字段名
关于filter 具体案例如下:
判等exact。
1. BookInfo.object.filter(id=1)
2. BookInfo.object.filter(id__exact=1)此处的__exact 可以省略

like  模糊查询

例:查询书名包含‘传’的图书,contains
contains :   Bookinfo.objects.filter(bittle__contains='转')

空查询 where 字段名 isnull
BookInfo.objects.filter(bittle__isnull=False)

范围查询 where id in (1,2,3)
BookInfo.objects.filter(id__in=[1,2,3])

比较查询 gt  It(less  than)  gte(equal) Ite
1. BookInfo.objects.filter(id__gte=3)
日期查询
1. BookInfo.objects.filter(bpub_date__year = 1980)
2. BookInfo.objects.filter(bpub_date__gt = date(1980,1,1))
exclude:返回不满足条件的数据。
3. BookInfo.objects.exclude(id=3)

F  对象
作用:用于类属性之间的比较条件

from django.db.models import F
2. 例:where bread > bcomment BookInfo.objects.filter(bread__gt =F(‘bcomment’))
3. 例:BookInfo.objects.filter(bread__gt=F(‘bcomment’)*2)
Q 对象
作用:用于查询时的逻辑条件,可以对Q 对象进行& | ~操作

from django.db.models.import Q
BookInfo.objects.filter(id__gt=3, bread__gt=30)
BookInfo.objects.filter(Q(id__gt=3) & Q(bread__gt=3))
4. 例:BookInfo.objects.filter(Q(id__gt=3) | Q(bread__gt=30))
5. 例:BookInfo.objects.filter(~Q(id=3))

聚合查询
作用: 对查询结果进行聚合操作
(sum  count  max  min  avg)

aggregate: 调用这个函数使用聚合
from django,db,models  import Sum, Count, Max, Min, Avg
例: BookInfo.onjects.aggregate(Count('id'))

('id__count': 5) 注意返回值类型及键名

BookInfo.Objects.aggregate(Sum('bread'))

{'bread__sum' : 120}  注意返回类型及键名
count  函数
作用:统计满足条件数据的数据
例:统计多有图书的数目
BookInfo.objects.all().count()
例:统计id大于3的所有图书的数目
BookInfo.objects.filter(id__gt=3).count()

模型类关系
1)一对多关系
例:图书类-英雄类
models.ForeignKey() 定义在多的类中
2) 多对多的关系
例:新闻类-新闻类型类
models.ManyToManyField()  定义在哪个类中都可以
3)一对一关系
例员工基本信息类--员工详细信息类
models.OneToOneField() 定义在哪个类中都可以

5 django中间件的使用?
django在中间件中预设了6个方法,这6个方法区别在于不同的阶段执行,对输入或输出进行干预,方法如下:

初始化: 无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件
def __init__():
    pass

2.处理请求前:在每个请求上调用,返回None或者HttpResponse 对象

def process_response(request):
    pass
处理视图前,在每个请求上调用,返回None 或HttpResopnse对象
def  process_view(request.view_func, view_args, view_kwargs):
    pass
处理模板响应前: 在每个请求上调用,返回实现render 方法的响应对象
def peocess_template_response(request, response):
    pass
处理响应后,多有响应返回浏览器之前被调用,每个请求上调用,返回HttpResponse对象

def process_response(request, response):
    pass
 异常处理:当时图抛出异常时调用,在每个请求上调用,返回一个HttpResponse对象
def process_exception(request, execption):
    pass

6 谈一下你对UWSGI和nginx的理解:

uWSGI:一个web服务器,它实现了WSGI协议,uwsgi,http等协议. Nginx中,HttpUwsgiModule的作用是与uwsgi服务器进行交换,WSGI是一种web服务器网关接口,他是一个web服务器(如nginx,uwsgi等服务器)与web应用(如Flask框架写的程序)通信的一种规范	
要注意WSGI/ uwsgi/ uWSGI这三个概念的区分
WSGI:一种通信协议
uwsgi: 是一种线路协议而不是通信协议,再次常用用于在uWSGI服务器与其他网络服务器的数据通信
uWSGI: 是实现uwsgi和WSGI两种协议的web服务器
nginx:是一个开源的高性能的HTTP的服务器和反向代理:
	1.作为web 服务器,它处理静态文件和索引文件效果非常高;
	2.它的设计非常注重效率,最大支持5万个并发链接,但只占用很少的内存空间;
	3.稳定性高,配置简介;
	4.强大的反向代理和负载均衡功能,平衡集群中各个服务器的负载压力应用

7 什么是restful API ,谈谈你的理解?

		REST:Representational State Transfer 的缩写,翻译:“具象状态传输”。一般解释为“表现层状态转换”。
		REST 是设计风格而不是标准。是指客户端和服务器的交互形式。我们需要关注的重点是如何设计
		REST 风格的网络接口。
		REST 的特点:
		1.具象的。一般指表现层,要表现的对象就是资源。比如,客户端访问服务器,获取的数据就是资
		源。比如文字、图片、音视频等。
		2.表现:资源的表现形式。txt 格式、html 格式、json 格式、jpg 格式等。浏览器通过URL 确定资
		源的位置,但是需要在HTTP 请求头中,用Accept 和Content-Type 字段指定,这两个字段是对资源
		表现的描述。
		3.状态转换:客户端和服务器交互的过程。在这个过程中,一定会有数据和状态的转化,这种转化
		叫做状态转换。其中,GET 表示获取资源,POST 表示新建资源,PUT 表示更新资源,DELETE 表示删
		除资源。HTTP 协议中最常用的就是这四种操作方式。
		RESTful 架构:
			1.每个URL 代表一种资源;
			2.客户端和服务器之间,传递这种资源的某种表现层;
			3.客户端通过四个http 动词,对服务器资源进行操作,实现表现层状态转换。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值