python web后台框架面试题

web后台框架


1. Django 、Flask、Tornado的对比

答案:

  1. Django走的是大而全的方向,开发效率高。它的MTV框架,自带的ORM,admin后台管理,自带的sqlite数据库和开发测试用的服务器,给开发者提高了超高的开发效率
    • 重量级web框架,功能齐全,提供一站式解决的思路,能让开发者不用在选择上花费大量时间。
    • 自带ORM(Object-Relational Mapping 对象关系映射)和模板引擎,支持jinja等非官方模板引擎。
    • 自带ORM使Django和关系型数据库耦合度高,如果要使用非关系型数据库,需要使用第三方库
    • 自带数据库管理app
    • 成熟,稳定,开发效率高,相对于Flask,Django的整体封闭性比较好,适合做企业级网站的开发。
    • python web框架的先驱,第三方库丰富
  2. Flask是轻量级的框架,自由,灵活,可扩展性很强,核心基于Werkzeug WSGI工具和jinja2模板引擎
    • 轻量级web框架,默认依赖两个外部库:jinja2和Werkzeug WSGI工具
    • 适用于做小型网站以及web服务的API,开发大型网站无压力,但架构需要自己设计
    • 与关系型数据库的结合不弱于Django,而与非关系型数据库的结合远远优于Django
  3. Tornado走的是少而精的方向,性能优越。它最出名的是异步非阻塞的设计方式
    • Tornado的两大核心模块:
      • iostraem:对非阻塞式的socket进行简单的封装
      • ioloop:对I/O多路复用的封装,它实现了一个单例
Django框架的优缺点
  • 优点:
    • 被官方定义为完美主义者框架,提供一站式的解决方案
    • 从模板、视图,模型ORM、Session等等都分配好了
    • 提供了admin自动后台管理,测试,表单等功能
  • 缺点:
    • 作为web框架太重了,很多不用的组件和应用也都之间在框架中安装了
    • 能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
    • 框架中的组件之间耦合度过高,不易拆分使用(例如数据验证需要表单配合…)
Django 作为一个 Web 开发框架,它包括哪些基本组成部分:
Flask框架的优缺点
  • Flask只提供了一些核心功能,非常简洁优雅.被称为python中的’微’框架
  • 自由、灵活,可扩展性强.入门简单,
  • 非常适用于开发web服务的API
  • 使用BluePrint架构开发大型网站无压力
  • 第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库

2.简述MVC和MTV

答案:

  1. MVC软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),MVC的核心思想:程序解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。

    • Model:负责业务对象与数据库的映射(ORM),主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。
    • View:负责与用户的交互,用于封装结果,生成页面展示的html内容。
    • Control:接受用户的输入调用模型和视图完成用户的请求,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。
  2. Django框架的MTV设计模式借鉴了MVC框架的思想,三部分为:Model、Template和View

    • Model(模型):负责业务对象与数据库的对象(ORM),与MVC中的M功能相同,负责和数据库交互,进行数据处理。
    • Template(模版):负责如何把页面展示给用户,与MVC中的V功能相同,负责封装构造要返回的html。
    • View(视图):负责业务逻辑,并在适当的时候调用Model和Template,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。</
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值