Python的Web框架Django常见面试题总结

什么是wsgi,uwsgi,uWSGI?

WSGI:
web服务器网关接口,是一套协议。用于接收用户请求并将请求进行初次封装,然后将请求交给web框架。
实现wsgi协议的模块:wsgiref,本质上就是编写一socket服务端,用于接收用户请求(django)werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask)。

uwsgi:
与WSGI一样是一种通信协议,它是uWSGI服务器的独占协议,用于定义传输信息的类型。

uWSGI:
是一个web服务器,实现了WSGI的协议,uWSGI协议,http协议。

CORS 和 CSRF的区别?

什么是CORS?

CORS是一个W3C标准,全称是“跨域资源共享"(Cross-origin resoure sharing).

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而客服了A JAX只能同源使用的限制。

什么是CSRF?
CSRF主流防御方式是在后端生成表单的时候生成一串随机token,内置到表单里成为一个字段,同时,将
此串token置入session中。每次表单提交到后端时都会检查这两个值是否一致,以此来判断此次表单提
交是否是可信的,提交过一次之后,如果这个页面没有生成CSRF token,那么token将会被清空,如果有
新的需求,那么token会被更新。
攻击者可以伪造POST表单提交,但是他没有后端生成的内置于表单的token,session中没有token都无
济于事。

简述Django请求生命周期

一般是用户通过浏览器向我们的服务器发起一个请求(request),这个请求会去访问视图函数,如果不涉及到数据调用,那么这个时候视图函数返回一个模板也就是一个网页给用户)。
视图函数调用模型Models去数据库查找数据,然后逐级返回,视图函数把返回的数据填充到模板中空格中,最后返回网页给用户。

1.wsgi ,请求封装后交给web框架(Flask,Django)
2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf,request.session
3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数
4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm,templates
5.中间件,对响应的数据进行处理
6.wsgi,将响应的内容发送给浏览器

post 和 get的区别?

1.GET是从服务器上获取数据,POST是向服务器传送数据
2.在客户端,GET方式在通过URL提交数据,数据在URL中可以看到,POST方式,数据放置在HTML
——HEADER内提交
3.对于GET方式,服务器端用Request.QueryString获取变量的值,对于POST方式,服务器端用
Request.Form获取提交的数据

未完,收集更新中…

你可能感兴趣的:(Django,笔记,django)