1.django请求的生命周期?
1.wsgi,请求封装后交给web框架 (Flask、Django)
2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session -
3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数
4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染 -
5.中间件,对响应的数据进行处理。
6.wsgi,将响应的内容发送给浏览器。
2.列举django中间件的5个方法?
1.process_request : 请求进来时,权限认证
2.process_view : 路由匹配之后,能够得到视图函数
3.process_exception : 异常时执行
4.process_template_responseprocess : 模板渲染时执行
5.process_response : 请求有响应时执行
3.. 列举Http请求中常见的请求头?
1. Host (主机和端口号)
2. Connection (链接类型)
3. Upgrade-Insecure-Requests (升级为 HTTPS 请求)
4. User-Agent (浏览器名称)
5. Accept (传输文件类型)
6. Referer (页面跳转处)
7. Accept-Encoding(文件编解码格式)
8. Cookie (Cookie)
9. x-requested-with :XMLHttpRequest (是 Ajax 异步请求)
http 请求中的常用头(请求头)的含义:
Accept:告诉服务器,客户端支持的数据类型。
Accept-Charset:告诉服务器,客户端采用的编码。
Accept-Encoding:告诉服务器,客户机支持的数据压缩格式。
Accept-Language:告诉服务器,客户机的语言环境。
Host:客户机通过这个头告诉服务器,想访问的主机名。
If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间。
Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链)
User-Agent:客户机通过这个头告诉服务器,客户机的软件环境。
Cookie:客户机通过这个头告诉服务器,可以向服务器带数据。
cookie 是临时文件的意思,保存你浏览网页的痕迹,使得再次上同一页面的时候提高网速,判断你 是否登录过这个网站,有些可以帮你自动登录的。
Cookie 就是服务器暂存放在你的电脑里的资料(.txt 格式的文本文件),通过在 HTTP 传输中的状态好 让服务器用来辨认你的计算机。当你在浏览网站的时候,Web 服务器会先送一小小资料放在你的计算 机上,Cookie 会帮你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie 里的内容来判断使用者, 送出特定的网页内容给你。
http 请求是指从客户端到服务器端的请求消息。包括:消息首行中,对资源的请求方法、资源的标 识符及使用的协议。
Connection:客户机通过这个头告诉服务器,请求完后是关闭还是保持链接。 Date:客户机通过这个头告诉服务器,客户机当前请求时间。
http 请求中常用的响应头的含义:
Location:这个头配合 302 状态码使用,告诉用户端找谁。
Server:服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding:服务器通过这个头,告诉浏览器数据采用的压缩格式。
Content-Length:服务器通过这个头,告诉浏览器回送数据的长度。
Content-Language:服务器通过这个头,告诉服务器的语言环境
Content-Type:服务器通过这个头,回送数据的类型 Last-Modified:服务器通过这个头,告诉浏览器当前资源的缓存时间。
Refresh:服务器通过这个头,告诉浏览器隔多长时间刷新一次。
Content-Disposition:服务器通过这个头,告诉浏览器以下载的方式打开数据。
Transfer-Encoding:服务器通过这个头,告诉浏览器数据的传送格式。
ETag:与缓存相关的头。
Expires:服务器通过这个头,告诉浏览器把回送的数据缓存多长时间。-1 或 0 不缓存。
Cache-Control 和 Pragma:服务器通过这个头,也可以控制浏览器不缓存数据。
Connection:服务器通过这个头,响应完是保持链接还是关闭链接。
Date:告诉客户机,返回响应的时间。
4.Flask框架依赖组件?
Route(路由)
templates(模板)
Models(orm模型)
blueprint(蓝图)
Jinja2模板引擎
5. Flask-WTF以及它们的特点是什么?
Flask-WTF提供与WTForms的简单集成。功能包括Flask WTF
与wtforms集成
使用CSRF令牌保护表单
全球CSRF保护
国际化整合
验证码支持
文件上传适用于Flask上传
6.Python 主要的内置数据类型都有哪些?
Python 主要的内置数据类型有:str,int,float,tuple,list,dict,set。
(布尔类型、数字、字符串、列表、元组、字典、集合)
7.read、 readline 和 readlines 的区别?
read:读取整个文件。
readline:读取下一行,使用生成器方法。
readlines:读取整个文件到一个迭代器以供我们遍历。