Python—Web框架面试总结-持续更新

Web框架

MVC
M:Model,模型,和数据库进行交互
V:Views,视图,负责产生Html页面
C:Controller,控制器,接收请求,进行处理,与M和V进行交互,返回应答。
流程图
1.用户点击注册按钮,将要注册的信息发送给网站服务器。
2.Controller控制器接收到用户的注册信息,Controller会告诉Model层将用户的注册信息保存到数据库。
3.Model层将用户的注册信息保存到数据库。
4.Model层将保存的结果返回给Controller控制器。
6.Controller控制器收到保存的结果之后,或告诉View视图,View视图产生一个html页面。
7.View将产生的Html页面的内容给了Controller控制器。
8.Controller将Html页面的内容返回给浏览器。
9.浏览器接受到服务器Controller返回的Html页面进行解析展示。

Django创建项目后,项目文件夹下的组成部分(对mvt的理解)
项目文件夹下的组成部分:
manage.py 是项目运行的入口,指定配置文件的路径。
与项目同名的目录,包含项目的配置文件。
init.py 是一个空文件,作用是这个目录可以被当作包使用。
setting.py 是项目的整体配置文件。
urls.py 是项目的URL配置文件。
wsgi.py 是项目与WSGI兼容的Web服务器入口。

MVT
M:Model,模型,和MVC中的M功能相同,和数据库进行交互。
V:views,视图,和MVC中的C功能相同,接收请求,进行处理,与M和T进行交互,返回应答。
T:Template,模板,和MVC中的V功能相同,产生Html页面。
在这里插入图片描述

Django,MIDDLEWARES中间件的作用
中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。每个中间件组件是一个独立的Python类。
具体步骤:与settings.py同级目录下创建 myexception.py 文件,定义MyException类;将定义的类注册到settings.py中间件中
MIDDLEWARE_CLASSES = (
‘test1.myexception.MyException’,

)

Django线程,协程,进程
django利用多线程增加异步任务,celery消息队列。
django中使用多线程发送邮件 .send_mail()。
django原生为单线程序,当第一个请求没有完成时,第二个请求阻塞,知道第一个请求完成,第二个请求才会执行。
使用uwsgi编程多并发,使用nginx+uwsgi提供高并发,nginx的并发能力超高,单并发能力过万。
django自带的development server 为多线程模式,但是他还有一个小问题就是它不是线程安全的。可能在请求很多时会出现数据不同步,当然,这一般不是问题,因为我们通常只在自己机器上调试时才用Development Server。

django 关闭浏览器,怎么清楚cookies和session
cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期。
Django中操作session:
session也是有过期时间,如果不指定,默认两周就会过期。
request.session.set_expiry(0);那么当浏览器关闭时,session失效
删除session:del request[key]

Django 对 http 请求的执行流程

  • 在接受一个Http请求之前的准备
  • 启动一个支持WSGI网关协议的服务器监听端口等待外界的Http请求,比如Django自带的开发者服务器或者uWSGI服务器。
  • 服务器根据WSGI协议指定相应的Handler来处理Http请求, 并且初始化该handler,在Django框架中由框架自身负责实现一个handler。
  • 此时服务器已处于监听状态,可以接收外界的Http请求。
  • 当一个http请求到达服务器的时候。
  • 服务器根据WSGI协议从Http请求中提取出必要的参数组成一个字典并传入handler中进行处理。
  • 在Handler中对已经符合WSGI协议标准规定的http请求进行分析,比如加载Django提供的中间件,路由分配,调用路由匹配的视图等。
  • 返回一个可以被浏览器解析的符合http协议的httpresponse。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值