刷题003

标签: 练习
8人阅读 评论(0) 收藏 举报
分类:

1、聊聊你对redis的理解:
2、说一下Django中MIDDLEWARES中间件的作用?
3、Flask和Django路由映射的区别?
4、django关闭浏览器,怎么清除cookies和session?
5、介绍下“消费者”和“生产者”模型

  1. Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

2.django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法。
中间件中可以定义五个方法,分别是:

process_request(self,request)
process_view(self, request, callback, callback_args, callback_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)

我们拿这些中间件干什么呢?

做IP拦截,客户端设备识别,过滤恶意请求等等

3.Flask这种风格是借鉴了如SpringMVC的这种框架,用装饰器来做路由。
而Django借鉴了如Rails的DRY原则(Don’t repeat yourself (DRY)),所以默认优于配置的比较多。
从路由角度来说,个人觉得Django更灵活,如果比较熟悉正则的话,改掉一个url的路由很轻松,但在flask里稍显麻烦。

django的路由效果是采用集中处理的方法,利用正则匹配。Flask也能这么做,但是更多是使用装饰器的形式。

4.HTTP被设计为”无状态”,每次请求都处于相同的空间中。 在一次请求和下一次请求之间没有任何状态保持,我们无法根据请求的任何方面(IP地址,用户代理等)来识别来自同一人的连续请求。

服务器会生成两份相同的cookie字符串,一份保存在本地,一份发向请求的浏览器。浏览器将收到的cookie字符串保存下来,当下次再发请求时,会将信息与这段cookie一同发送到服务器,服务器得到这段cookie会与本地保存的那份判断是否相同,如果相同就表示用户已经登录成功,保存用户登录成功的状态。Django的session保存在数据库中的数据相当于一个大字典,key为cookie的字符串,value仍是一个字典,字典的key和value为用户设置的相关信息。这样就可以方便的存取session里面的信息。

cookies 是浏览器为 Web 服务器存储的一小段信息。 每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的cookies。它保存在浏览器下的某个文件夹下。
Django的Session机制会向请求的浏览器发送cookie字符串。同时也会保存到本地一份,用来验证浏览器登录是否为同一用户。它存在于服务器,Django默认会把session存入到数据库中。

cookie可以有过期时间,这样浏览器就知道什么时候可以删除cookie了。 如果cookie没有设置过期时间,当用户关闭浏览器的时候,cookie就自动过期了。 你可以改变 SESSION_EXPIRE_AT_BROWSER_CLOSE 的设置来控制session框架的这一行为。缺省情况下, SESSION_EXPIRE_AT_BROWSER_CLOSE 设置为 False ,这样,会话cookie可以在用户浏览器中保持有效达 SESSION_COOKIE_AGE 秒(缺省设置是两周,即1,209,600 秒)。 如果你不想用户每次打开浏览器都必须重新登陆的话,用这个参数来帮你。如果 SESSION_EXPIRE_AT_BROWSER_CLOSE 设置为 True ,当浏览器关闭时,Django会使cookie失效。

Session依赖于Cookie,如果浏览器不能保存cooki那么session就失效了。因为它需要浏览器的cooki值去session里做对比。session就是用来在服务器端保存用户的会话状态。

5.生产者和消费是操作系统中一种重要的模型,它描述的是一种等待和通知的机制。
首先,生产者只需要关心“仓库”,并不需要关心具体的消费者。
对于消费者而言,它不需要关心具体的生产者,它只需要关心这个“仓库”中还有没有东西存在。
生产者生产的时候消费者不能进行“消费”,消费者消费的时候生产者不能生产,相当于一种互斥关系,即生产者和消费者一次只能有一人能访问到“仓库”。
“仓库”为空时不能进行消费。
“仓库”满时不能进行生产。

查看评论

Android自动化刷量、作弊与防作弊

通过讲解AccessibilityService,adb event,xposed等知识点,让大家对Android自动化刷量,作弊与防作弊有一定的基础,然后通过刷友盟和批量注册苹果帐号这两个案例的实战,让大家对刷量有更深刻的理解,并且把眼界打开,并能自己动手写刷量,作弊的工具。最后讲解防作弊的手段,让大家对整个课程有一个更明确的理解,达到举一反三的目的。一切的基础都建立于实战!
  • 2017年01月09日 19:58

Python 刷题(想练python的可以对着刷一刷,持续更新)

这道题的意思是说
  • geniusluzh
  • geniusluzh
  • 2014-04-23 10:36:41
  • 9213

谈谈程序员面试之刷题

前一段时间有一个非常有趣的故事(http://www.pingwest.com/sorry-cant-hire-you/  ),Max Howell (Homebrew的作者) 在 Google 面试...
  • github_39335046
  • github_39335046
  • 2017-06-29 17:03:58
  • 3391

刷题算法小技巧

1.大数取余: 对于较大数快速取余:
  • chudongfang2015
  • chudongfang2015
  • 2016-08-30 16:43:49
  • 954

【零基础入门学习Python笔记003】插曲之变量和字符串|课习题答案

测试题 动动手 1.在不上机的情况下,以下代码你能猜到屏幕上会打印什么内容吗? 会打印:小甲鱼 2.在不上机的情况下,以下代码你能猜到屏幕上会打印什么内容吗? 会打印:小甲鱼...
  • SMF0504
  • SMF0504
  • 2016-03-09 12:52:22
  • 1315

比较好的刷题网站推荐

http://www.cnblogs.com/DarrenChan/p/5648422.html 1.Leetcode鼎鼎大名的Leetcode,据不完全统计在上面被刷过的题可以围绕地球...
  • dipolar
  • dipolar
  • 2017-03-09 11:56:32
  • 1299

Java 刷题

Java抽象类可以实例化吗? 抽象类不能用来创建对象;方法重载(overload): 1.必须是同一个类 2方法名(也可以叫函数)一样 3参数类型不一样或参数数量不一样方法的重写(overri...
  • u012063703
  • u012063703
  • 2016-01-18 17:48:54
  • 1939

程序员必备技术网站及刷题网站 | Java我最强

今天小编为各位程序员总结了一些必备的 技术网站和刷题网站 技术网站  https://github.com/ 开源代码库以及版本控制系统。 ...
  • Java_wozuiqiang
  • Java_wozuiqiang
  • 2017-07-28 17:11:21
  • 4638

c_c++刷题必备好资料

  • 2014年07月29日 23:20
  • 179KB
  • 下载

我该怎样高效刷题?

写到这个题目HDU1176,起初一看,一点思路都没有,真的!感觉不会很难,去Discuss里面看了一下,看到一个人代码,他说这是数塔问题!我认真的看了一下他的代码,然后又去详细的查了一下关于数塔的知识...
  • wlxsq
  • wlxsq
  • 2016-04-24 13:41:31
  • 1031
    个人资料
    持之以恒
    等级:
    访问量: 14万+
    积分: 2401
    排名: 1万+
    最新评论