python面试题
无敌..
脚踏实地
展开
-
面试注意点
第一题#请你自我介绍一下你自己?#这道面试题是大家在以后面试过程中会常被问到的,那么我们被问到之后,该如果回答呢?是说姓名?年龄?还是其他什么一般人回答这个问题往往会进入误区,回答的过于平常,只说姓名、年龄、爱好、工作经验等,但是你们想到没有,其实这些信息你的个人简历上都有,那么面试官还问你干什么?其实,面试官最希望知道的是求职者能否胜任这份工作,包括:最强的技能、最深入研究的知识领域、个性中...原创 2018-12-12 18:14:12 · 516 阅读 · 0 评论 -
python 中 yield 的用法?
yield 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 简单说来就是一个生成器,这样函数它记住上次返 回时在函数体中的位置。对生成器第 二次(或n 次)调用跳转至该函 次)调用跳转至该函 数。...原创 2018-12-09 09:54:25 · 116 阅读 · 0 评论 -
什么是线程安全?
线程安全是在多线程的环境下,能够保证多个线程同时执行时程序依旧运行正确, 而且要保证对于共享的数据可以由多个线程存取,但是同一时刻只能有一个线程进行存取。多线程环境下解决资源竞争问题的办法是加锁来保证存取操作的唯一性。...原创 2018-12-09 09:54:37 · 88 阅读 · 0 评论 -
Django的是如何工作的
一张流程图告诉你,django的处理流程:URL的组成:作为网站的用户,我们首先在浏览器的输入框内输入:http://127.0.0.1:8000/index/URL地址由以下几部分组成:协议类型: HTTP ,FTP HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使...转载 2018-12-09 09:55:54 · 177 阅读 · 0 评论 -
ORM的映射机制与数据库
1、Django项目中使用MySQL数据库1.1、在Django项目的settings.py文件中,配置数据库连接信息DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "你的数据库名称", # 需要自己手动创建数据库 "USER"转载 2018-12-09 09:59:03 · 345 阅读 · 0 评论 -
Django 本身提供了 runserver,为什么不能用来部署?
runserver 方法是调试 Django 时经常用到的运行方式,它使用 Django 自带的WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。 uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi、http 等协议。注意 uwsgi 是一种通信协议,而 uWSGI 是实现 uwsgi 协议和 WSGI 协议的 W...转载 2018-12-09 09:59:44 · 5793 阅读 · 2 评论 -
数据库的优化?
1. 优化索引、SQL 语句、分析慢查询;2. 设计表的时候严格根据数据库的设计范式来设计数据库;3. 使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘IO;4. 优化硬件;采用SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等;5. 采用MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率;6. 垂直分...转载 2018-12-09 10:00:03 · 176 阅读 · 0 评论 -
web框架中是如何实现mvc模式的
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:1、Model(模型)表示应用程序核心(比如数据库记录列表)。2、View(视图)显示数据(数据库记录)。3、Controller(控制器)处理输入(写入数据库记录)。MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。Mo...原创 2018-12-09 10:00:21 · 1091 阅读 · 0 评论 -
python中的list和tuple的用法和区别?
list:1、list是一种有序的集合,可以随时添加和删除其中的元素2、访问list中的元素,索引从0开始,0为第一个元素,当索引超出范围会报错,索引不能越界,最后一个元素 的索引是len(num)-13、如果要取最后一个元素,除了计算索引位置,还可以用-1做索引直接取到最后一个元素4、 使用append()可以在list的尾部添加元素5、使用insert()可以将元素插入添加...原创 2018-12-10 12:34:59 · 323 阅读 · 0 评论 -
set集合的特点
python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算. sets 支持 x in set, len(set),和 for x in set。作为一个无序的集合,sets不记录元素位置或...转载 2018-12-20 22:50:24 · 1147 阅读 · 0 评论 -
python中的*args与**kwargs分别代表的意思。
*args可变参数在Python函数中,可以定义可变参数。可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个*args表示把args这个list或者tuple的所有元素作为可变参数传进去。两种传递方式如下>>> def foo(x,*args):#x为位置参数 args是可变参数 print(x) print(args) >&g...转载 2018-12-10 17:03:23 · 196 阅读 · 0 评论 -
在自定义类的时候,@property装饰器的作用?
@property装饰器就是负责把一个方法变成属性调用的:class Student(object): @property def score(self): return self._score @score.setter def score(self, value): if not isinstance(value, in...转载 2018-12-10 17:35:12 · 4108 阅读 · 0 评论 -
Python中 * 和 ** 的打包和解包
python中的 * 和 ** ,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的。一、打包参数* 的作用:在函数定义中,收集所有位置参数到一个新的元组,并将整个元组赋值给变量args。def f(*args): print(args)f() # ()f(1) # (1,)f(1,2,3,4,5) #(1,2,3,4,5)** 的作用:...原创 2019-01-01 12:03:21 · 2799 阅读 · 1 评论 -
TCP与UDP区别小结
TCP(TransmissionControlProtocol):传输控制协议 UDP(UserDatagramProtocol):用户数据报协议 主要从连接性(Connectivity)、可靠性(Reliability)、有序性(Ordering)、有界性(Boundary)、拥塞控制(Congestion or Flow control)、传输速度(Speed)、量级(Hea...原创 2019-03-21 14:43:24 · 199 阅读 · 0 评论 -
ngnix 的正向代理与反向代理
正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器, 为了从原始服务器取得内容, 客户端向代理发送一个请求并指定目标(原始服务器), 然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。反向代理正好相反, 对于客户端而言它就像是原始服务器, 并且客户端不需要进行任何特别的设置。客户端向反向代理的命名...转载 2018-12-09 09:49:55 · 147 阅读 · 0 评论 -
什么是wsgi,uwsgi,uWSGI?
WSGI: web服务器网关接口,是一套协议。用于接收用户请求并将请求进行初次封装,然后将请求交给web框架实现wsgi协议的模块: 1.wsgiref,本质上就是编写一个socket服务端,用于接收用户请求(django) 2.werkzeug,本质上就是编写一个socket服务端,用于接收用户请求(flask)uwsgi: 与WSGI一样是一种通信协议,它是...原创 2018-12-07 09:54:15 · 1122 阅读 · 0 评论 -
说一下Django,MIDDLEWARES中间件的作用和应用场景?
中间件是介于request与response处理之间的一道处理过程,用于在全局范围内改变Django的输入和输出。简单的来说中间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作例如:1.Django项目中默认启用了csrf保护,每次请求时通过CSRF中间件检查请求中是否有正确token值2.当用户在页面上发送请求时,通过自定义的认证中间件,判断用户是否已经登陆,未登陆...转载 2018-12-08 21:48:08 · 1934 阅读 · 0 评论 -
Django重定向是如何实现的?用的什么状态码?
1.使用HttpResponseRedirect #from django.http import HttpResponseRedirect2.使用redirect和reverse #状态码:301和302 #301和302的区别:相同点:都表示重定向,浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址不同点: 301比较常用的场景是使用域名跳转。比如,我们访问...原创 2018-12-08 21:48:26 · 1042 阅读 · 1 评论 -
基于django使用ajax发送post请求时,都可以使用哪种方法携带csrf token?
#1.后端将csrftoken传到前端,发送post请求时携带这个值发送data: { csrfmiddlewaretoken: '{{ csrf_token }}' },#2.获取form中隐藏标签的csrftoken值,加入到请求数据中传给后端 data: { csrfmiddlewaretoken:$('[name="...原创 2018-12-08 21:48:03 · 1719 阅读 · 1 评论 -
Django本身提供了runserver,为什么不能用来部署?(runserver与uWSGI的区别)
1.runserver方法是调试 Django 时经常用到的运行方式,它使用Django自带的WSGI Server 运行,主要在测试和开发中使用,并且 runserver 开启的方式也是单进程 。2.uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http 等协议。注意uwsgi是一种通信协议,而uWSGI是实现uwsgi协议和WSGI协议的 Web 服务器。uWSG...原创 2018-12-07 09:55:48 · 4268 阅读 · 0 评论 -
cookie和session的区别:
1.cookie: cookie是保存在浏览器端的键值对,可以用来做用户认证2.session: 将用户的会话信息保存在服务端,key值是随机产生的自符串,value值时session的内容 依赖于cookie将每个用户的随机字符串保存到用户浏览器上Django中session默认保存在数据库中:django_session表flask,session默认将...原创 2018-12-08 21:47:58 · 149 阅读 · 0 评论 -
列举django orm 中所有的方法(QuerySet对象的所有方法)
all() 查询所有结果 filter(**kwargs) 它包含了与所给筛选条件相匹配的对象。获取不到返回None get(**kwargs) 返回与所给筛选条件相匹配的对象,返回结果有且只有一个。获取不到会抱胸 #如果符合筛选条件的对象超过一个或者没有都会抛出错误 exclude(**kwargs) 它包含了与所给筛选条件不匹配的对象 order_...转载 2018-12-08 21:48:43 · 1836 阅读 · 0 评论 -
select_related和prefetch_related的区别?
有外键存在时,可以很好的减少数据库请求的次数,提高性能select_related通过多表join关联查询,一次性获得所有数据,只执行一次SQL查询prefetch_related分别查询每个表,然后根据它们之间的关系进行处理,执行两次查询...原创 2018-12-08 21:47:53 · 610 阅读 · 0 评论 -
面试题小知识点
1、filter和exclude的区别?取到的值都是QuerySet对象,filter选择满足条件的,exclude:排除满足条件的.2、F和Q的作用?F:对数据本身的不同字段进行操作 如:比较和更新Q:用于构造复杂的查询条件 如:& |操作3、values和values_list的区别?values : 取字典的querysetvalues_list : 取元...转载 2018-12-07 09:47:03 · 180 阅读 · 0 评论 -
django内置的缓存机制?
# 全站缓存MIDDLEWARE_CLASSES = ( ‘django.middleware.cache.UpdateCacheMiddleware’, #第一 'django.middleware.common.CommonMiddleware', ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后) ...转载 2018-12-07 09:59:30 · 494 阅读 · 0 评论 -
django的缓存能使用redis吗?如果可以的话,如何配置?
#1.安装 pip install django-redis#2.在stting中配置CACHES,可以设置多个缓存,根据名字使用 CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": ...原创 2018-12-07 09:59:23 · 376 阅读 · 0 评论 -
谈谈你对restful规范的认识?
#首先restful是一种软件架构风格或者说是一种设计风格,并不是标准,它只是提供了一组设计#原则和约束条件,主要用于客户端和服务器交互类的软件。 #就像设计模式一样,并不是一定要遵循这些原则,而是基于这个风格设计的软件可以更简洁,更#有层次,我们可以根据开发的实际情况,做相应的改变。#它里面提到了一些规范,例如:#1.restful 提倡面向资源编程,在url接口中尽量要使用名词...转载 2018-12-07 09:48:08 · 1809 阅读 · 0 评论 -
django rest framework框架中都有那些组件?
1.序列化组件:serializers 对queryset序列化以及对请求数据格式校验2.路由组件routers 进行路由分发3.视图组件ModelViewSet 帮助开发者提供了一些类,并在类中提供了多个方法4.认证组件 写一个类并注册到认证类(authentication_classes),在类的的authticate方法中编写认证逻5.权限组件 写一个类并注册到权限类(permi...转载 2018-12-08 21:47:48 · 872 阅读 · 0 评论 -
什么是跨域以及解决方法:
#跨域:# 浏览器从一个域名的网页去请求另一个域名的资源时,浏览器处于安全的考虑,不允许不同源的请求#同源策略:# 协议相同# 域名相同# 端口相同#处理方法:# 1.通过JSONP跨域# JSON是一种数据交换格式# JSONP是一种非官方的跨域数据交互协议# jsonp是包含在函数调用中的json# script标签不受同源策略的影响,手动创建一个script标签,...转载 2018-12-07 09:59:04 · 467 阅读 · 0 评论 -
进程和线程的主要区别(总结)
根本区别:进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位在开销方面:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。所处环境:在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过...转载 2019-03-21 14:45:57 · 138 阅读 · 0 评论