-
Python面试真题- Django重定向你是如何实现的?用的什么状态码?
【Python面试真题】- Django重定向你是如何实现的?用的什么状态码? 使用HttpResponseRedirect redirect和reverse 状态码:302,301
-
Python面试真题- 在多线程环境中,Python 虚拟机按什么方式执行 ?
【Python面试真题】- 在多线程环境中,Python 虚拟机按什么方式执行 ? 1. 设置GIL2. 切换到一个线程去运行3. 运行: a. 指定数量的字节码指令,或者 b. 线程主动让出控制(可以调用time.sleep(0))4. 把线程设置为睡眠状态5. 解锁GIL6. 再次重复以上所有步骤 在调用外部代码(如C/C++扩展函数)的时候,GIL 将会被锁定,直到这个函数结束为止(由于在这期间没有Python 的字节码被运行,所以不会做线程…
-
Python面试真题 - 迭代器和生成器的区别 ?
【Python面试真题】- 迭代器和生成器的区别 ? 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调用iter()函数,iter()是Python的内置函数。iter()会返回一个定义了next()方法的迭代器对象,它在容器中逐个访问容器内元素,next()也是Python的内置函数。在没有后续元素时,next()会抛出一个S…
-
Python面试真题 - 写爬虫是用多进程好?还是多线程好? 为什么?
【Python面试真题】- 写爬虫是用多进程好?还是多线程好? 为什么? IO密集型代码(文件处理、网络爬虫等),多线程能够有效提升效率(单线程下有IO操作会进行IO等待,造成不必要的时间浪费,而开启多线程能在线程A等待时,自动切换到线程B,可以不浪费CPU的资源,从而能提升程序执行效率)。在实际的数据采集过程中,既考虑网速和响应的问题,也需要考虑自身机器的硬件情况,来设置多进程或多线程
-
Python面试真题 - 你常用的mysql引擎有哪些?各引擎间有什么区别?
【Python面试真题】- 你常用的mysql引擎有哪些?各引擎间有什么区别? 主要 MyISAM 与 InnoDB 两个引擎,其主要区别如下: 一、InnoDB 支持事务,MyISAM 不支持,这一点是非常之重要。事务是一种高 级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而 MyISAM 就不可以了; 二、MyISAM 适合查询以及插入为主的应用,InnoDB 适合频繁修改以及涉及到 安全性较高的应用; 三、InnoDB 支持外键,MyISAM 不支…
-
Python面试真题- scrapy和scrapy-redis有什么区别?为什么选择redis数据库?
【Python面试真题】- scrapy和scrapy-redis有什么区别?为什么选择redis数据库? 1)scrapy是一个Python爬虫框架,爬取效率极高,具有高度定制性,但是不支持分布式。而scrapy-redis一套基于redis数据库、运行在scrapy框架之上的组件,可以让scrapy支持分布式策略,Slaver端共享Master端redis数据库里的item队列、请求队列和请求指纹集合。 2)为什么选择redis数据库,因为redis支持主从同步,而且数据都是缓存在内…
-
【Python面试真题】- Django 本身提供了 runserver,为什么不能用来部署?
【Python面试真题】- Django 本身提供了 runserver,为什么不能用来部署? runserver 方法是调试 Django 时经常用到的运行方式,它使用 Django 自带的 WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi、http 等协议。注意 uwsgi 是一种通信协议,而 uWSGI 是实现uwsgi 协议和 WSGI 协议的 Web…
-
Python面试真题 - Tornado 的核是什么 ?
【Python面试真题】- Tornado 的核是什么 ? Tornado 的核心是 ioloop 和 iostream 这两个模块,前者提供了一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket ,再搭配相应的回调 函数,便可达到梦寐以求的高效异步执行。
-
Python面试真题 - Django重定向你是如何实现的?用的什么状态码?
【Python面试真题】- Django重定向你是如何实现的?用的什么状态码? 使用HttpResponseRedirect redirect和reverse 状态码:302,301
-
Python面试真题 - 怎么描述数组、链表、队列、堆栈的区别?
【Python面试真题】- 怎么描述数组、链表、队列、堆栈的区别? 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出;队列和堆栈可以用数组来实现,也可以用链表实现。