面试前赶紧看了5道Python Web面试题,Python面试题No17

栏目: Python · 发布时间: 5年前

内容简介:django在中间件中预设了6个方法,这6个方法区别在于不同的阶段执行,对输入或输出进行干预,方法如下:Django源自一个在线新闻 Web站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:

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

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

def __init__():
    pass

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

def process_response(request):
    pass

#3 处理视图前,在每个请求上调用,返回None 或HttpResopnse对象
def  process_view(request.view_func, view_args, view_kwargs):
    pass

#4 处理模板响应前: 在每个请求上调用,返回实现render 方法的响应对象
def peocess_template_response(request, response):
    pass
#5 处理响应后,多有响应返回浏览器之前被调用,每个请求上调用,返回HttpResponse对象

def process_response(request, response):
    pass

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

第3题: django开发中数据做过什么优化?

  1. 设计表时,尽量少使用外键,因为外键约束会影响插入和删除性能
  2. 使用缓存,减少对数据库的访问
  3. orm框架下设置表时,能使用varchar确定字段长度时,就别用text
  4. 可以给搜索频率搞得字段属性,在定义时创建索引
  5. django orm 框架下的Querysets 本来就有缓存的
  6. 如果一个页面需要多次链接数据库,最好一次性去除所有需要的数据,减少数据库的查询次数
  7. 若页面只需要数据库里面的某一两个字段时,可以用QuerySet.values()
  8. 在模板标签里使用with标签可以缓存Qset查询结果

第4题: 解释一下 Django 和 Tornado 的关系、差别?

Django

Django源自一个在线新闻 Web站点,于 2005 年以开源的形式被释放出来。

Django 框架的核心组件有:

用于创建模型的对象关系映射为最终用户设计的完美管理界面一流的 URL 设计设计者友好的模板语言缓存系统等等

它鼓励快速开发,并遵循MVC设计。

Django遵守 BSD版权,最新发行版本是Django1.4,于2012年03月23日发布.Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的 工具 包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not RepeatYourself)原则。

Tornado

Tornado是 FriendFeed使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像 web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具和优化。

Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容 服务器,以处理数以千计的客户端的连接的问题。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

谷歌和亚马逊如何做产品

谷歌和亚马逊如何做产品

梅 (Chris Vander Mey) / 刘亦舟 / 人民邮电出版社 / 2014-6-1 / CNY 49.00

软件在交付之前,面临产品、方案、项目和工程管理等诸多挑战,如何做到游刃有余并打造出极致产品?本书作者曾任谷歌和亚马逊高级产品经理、现任Facebook产品经理,他将自己在达特茅斯学院钻研的理论知识和在领先的互联网公司十年的工作经验尽数总结在此,从定义产品开始,一步步指导你完成管理项目、迭代、发布、市场推广等交付流程,让你身临其境地体验到极致产品如何取得成功。 本书主要内容: 如何清晰定......一起来看看 《谷歌和亚马逊如何做产品》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换