pythonweb开发面试_Python web 面试题(一)

1、列举django的内置组件?

url 、view、model、template、中间件

2、列举django中间件的5个方法?以及django中间件的应用场景?

process_request(self,request)

process_view(self, request, callback, callback_args, callback_kwargs)

process_exception(self, request, exception)

process_response(self, request, response)

3、django请求的生命周期?

前端请求—>nginx—>uwsgi.—>中间件—>url路由—->view试图—>orm—->拿到数据返回给view—->试图将数据渲染到模版中拿到字符串—->中间件—>uwsgi—->nginx—->前端渲染

4、django的request对象是在什么时候创建的?

当请求一个页面时,Django会建立一个包含请求元数据的 HttpRequest 对象。 当Django 加载对应的视图时,HttpRequest 对象将作为视图函数的第一个参数。每个视图会返回一个HttpResponse 对象。

5、only和defer的区别?

defer : 映射中排除某列数据

only : 仅取某个列中的数据

6、select_related和prefetch_related的区别?

select_related 通过多表join关联查询,一次性获得所有数据,通过降低数据库查询次数来提升性能,但关联表不能太多,因为join操作本来就比较消耗性能

prefetch_related() 的解决方法是,分别查询每个表,然后用Python处理他们之间的关系! 都是为了减少SQL查询的数量

7、values和values_list的区别?

values方法可以获取number字段的字典列表。

values_list可以获取number的元组列表。

values_list方法加个参数flat=True可以获取number的值列表。

8、django中csrf的实现机制?

Django预防CSRF攻击的方法是在用户提交的表单中加入一个csrftoken的隐含值,这个值和服务器中保存的csrftoken的值相同,这样做的原理如下:

1、在用户访问django的可信站点时,django反馈给用户的表单中有一个隐含字段csrftoken,这个值是在服务器端随机生成的,每一次提交表单都会生成不同的值

2、当用户提交django的表单时,服务器校验这个表单的csrftoken是否和自己保存的一致,来判断用户的合法性

3、当用户被csrf攻击从其他站点发送精心编制的攻击请求时,由于其他站点不可能知道隐藏的csrftoken字段的信息这样在服务器端就会校验失败,攻击被成功防御

具体配置如下:

template中添加{%csrf_token%}标签

9、django的模板中filter和simple_tag的区别?

simple_tag

-参数任意,但是不能作为if条件判断的条件

filter

-参数最多只能有两个,但是可以作为if条件判断的条件。

10、django路由系统中name的作用?

name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个小名”,只要这个名字不变,网址变了也能通过名字获取到。

11、简述MVC和MTV

MVC: 模型 视图 控制器

MTV: 模型 模板 视图

12、谈谈你对restfull 规范的认识?

restful其实就是一套编写接口的协议,协议规定如何编写以及如何设置返回值、状态码等信息。

最显著的特点:

restful: 给用户一个url,根据method不同在后端做不同的处理,比如:post 创建数据、get获取数据、put和patch修改数据、delete删除数据。

no rest: 给调用者很多url,每个url代表一个功能,比如:add_user/delte_user/edit_user/

当然,还有协议其他的,比如:

版本,来控制让程序有多个版本共存的情况,版本可以放在 url、请求头(accept/自定义)、GET参数

状态码,200/300/400/500

url中尽量使用名词,restful也可以称为“面向资源编程”

api标示:

api.YueNet.com

www.YueNet.com/api/

13、接口的幂等性是什么意思?

一个接口通过首先进行1次访问,然后对该接口进行N次相同访问的时候,对访问对象不造成影响,那么就认为接口具有幂等性。

比如:

* GET, 第一次获取数据、第二次也是获取结果,幂等。

* POST, 第一次新增数据,第二次也会再次新增,非幂等。

* PUT, 第一次更新数据,第二次不会再次更新,幂等。

* PATCH,第一次更新数据,第二次可能再次更新,非幂等。

* DELTE,第一次删除数据,第二次不会再次删除,幂等。

14、什么是RPC?

RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

15、Http和Https的区别?

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

16、为什么要使用django rest framework框架?

1.客户端-服务端分离

优点:提高用户界面的便携性,通过简化服务器提高可伸缩性….

2.无状态(Stateless):从客户端的每个请求要包含服务器所需要的所有信息

优点:提高可见性(可以单独考虑每个请求),提高了可靠性(更容易从局部故障中修复),提高可扩展性(降低了服务器资源使用)

3.缓存(Cachable):服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求

优点:减少交互次数,减少交互的平均延迟

4.统一接口

优点:提高交互的可见性,鼓励单独改善组件

5.支持按需代码(Code-On-Demand 可选)

优点:提高可扩展性

17、简述 django rest framework框架的认证流程。

如何编写?写类并实现authticate

方法中可以定义三种返回值: (user,auth),认证成功 None , 匿名用户 异常 ,认证失败

流程: dispatch 再去request中进行认证处理

18、django rest framework如何实现的用户访问频率控制?

a. 基于用户IP限制访问频率

b. 基于用户IP显示访问频率(利于Django缓存)

c. view中限制请求频率

d. 匿名时用IP限制+登录时用Token限制

19、简述什么是FBV和CBV?

django中请求处理方式有2种:FBV 和 CBV

FBV(function base views) 就是在视图里使用函数处理请求。

CBV(class base views)就是在视图里使用类处理请求 类需要继承view

20、什么是wsgi?

WSGI(Web Server Gateway Interface,Web 服务器网关接口)则是Python语言中1所定义的Web服务器和Web应用程序之间或框架之间的通用接口标准。

WSGI就是一座桥梁,桥梁的一端称为服务端或网关端,另一端称为应用端或者框架端,WSGI的作用就是在协议之间进行转化。WSGI将Web组件分成了三类:Web 服务器(WSGI Server)、Web中间件(WSGI Middleware)与Web应用程序(WSGI Application)。

Web Server接收HTTP请求,封装一系列环境变量,按照WSGI接口标准调用注册的WSGI Application,最后将响应返回给客户端。

21、列举django orm 中所有的方法(QuerySet对象的所有方法)

返回Query Set对象的方法有:

* all()

* filter()

* exclude()

* order_by()

* reverse()

* dictinct()

特殊的QuerySet:

* values() 返回一个可迭代的字典序列

* values_list() 返回一个可迭代的元祖序列

返回具体对象的:

* get()

* first()

* last()

返回布尔值的方法有:

* existe()

返回数学的方法有:

* count( )

----------------休止符---------------

web基础太弱,需要尽快突击强化,视频加代码,fighting。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260752.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波18 - 低通、高通、带阻和带通滤波器、组合使用空间增强方法

低通、高通、带阻和带通滤波器 得到空间滤波器的第三种方法,生成一维滤波器函数,然后要么使用式(3.42)wvvTw vv^TwvvT生成二维可分离的滤波器函数,要么旋转这些一维函数来生成二维核。旋转后的一维函数是圆对称(各向同性&#x…

MySQL两千万数据优化迁移

最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。不过这些数据有大量的冗余字段和错误信息,极不方便做统计和分析。所以我需要创建一张新表&…

Linux Tomcat 6.0安装配置实践总结

系统环境: Red Hat Enterprise Linux Server release 5.7 (Tikanga) 64位 Tomcat下载 从官方网站 http://tomcat.apache.org/下载你需要的Tomcat版本,目前Tomcat主要版本有Tomcat 6.0、Tomcat 7.0、Tomcat 8.0三个版本,下面我们以6.0(6.0.39…

如何给FormPanel表单中的元素赋值以及获取表单元素值

1.定义表单元素的name属性如下 var HLV new Ext.form.TextField({fieldLabel: 汇率,name:EXCHANGERATE,anchor: 30%}); 2.定义数据源 var ExchangeRatestore new Ext.data.Store({proxy: new Ext.data.HttpProxy({ url: WsECOTAX01.asmx/SelectExchangeRate, method: "po…

第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史

本章主要讲解频域域滤波的技术,主要技术用到是大家熟悉的傅里叶变换与傅里叶反变换。这里有比较多的篇幅讲解的傅里叶的推导进程,用到Numpy傅里叶变换。本章理论基础比较多,需要更多的耐心来阅读,有发现有错误,可以与我…

python中str是什么函数_python str函数怎么用

展开全部 是将一个2113对象转成字符串显示5261,注意只是显示用,有些对象4102转成字符串没有直1653接的意思。 str():将变量转化为字符串类型 a 1 b [1, 2, 3] str_a str(a) print(a) print(type(a)) str_b str(b) print(b) print(type(b)) The str()…

[ofbiz]less-than (lt;) and greater-than (gt;) symbols

问题描述&#xff1a; In field [updateItemStr] less-than (<) and greater-than (>) symbols are not allowed 此处的field [updateItemStr]是services的一个IN参数&#xff0c;错误描述的意思是"<,>"不能出现在这个域内。 解决办法&#xff1a; 在ser…

分页探究--Filter+JSTL

最近卡了一个功能就是分页&#xff0c;查了很多资料&#xff0c;分页大概是两种类型&#xff1a;一种是把数据库的东西全部查出来然后放在session里&#xff0c;用list一页一页传到页面&#xff0c;这样的消耗比较大;另一种就是使用sql语句的limit来进行数据库分页查询。我使用…

iPhone开发资料之内存管理 ,循环引用导致的内存问题

iPhone开发资料之内存管理 ,循环引用导致的内存问题 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmPractical.html#//apple_ref/doc/uid/TP40004447 http://en.wikipedia.org/wiki/Reference_counting 【IT168 技术文档】开…

python能做大型游戏吗_python有做大型游戏的潜力吗?

著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 岂止是有潜力&#xff0c;简直是很合适&#xff01; 猪厂两大游戏客户端引擎&#xff0c;NeoX 和 Messiah&#xff0c;都使用 Python 作为脚本语言。 你最近所了解的比较火的挂着猪厂旗号的&a…

第4章 Python 数字图像处理(DIP) - 频率域滤波2 - 复数、傅里叶级数、连续单变量函数的傅里叶变换、卷积

目录基本概念复数傅里叶级数冲激函数及其取样&#xff08;筛选&#xff09;性质连续单变量函数的傅里叶变换卷积基本概念 复数 复数CCC的定义为 CRjI(4.3)C R jI \tag{4.3}CRjI(4.3) R,IR,IR,I为实数&#xff0c;RRR是实部&#xff0c;III是虚部&#xff0c;j−1j \sqrt{-…

不要迷失在技术的海洋中【转】

转自http://www.cnblogs.com/lovecherry/archive/2007/10/28/940555.html 不要迷失在技术的海洋中 技术就好像一片汪洋大海&#xff0c;越深入越望不到边际。就拿自己的体验来说吧&#xff0c;2000年的时候在学校搞ASP&#xff0c;觉得网页开发就是这么简单&#xff0c;把数据库…

使用代码设置Item级的权限(权限总结1)

itle in english:set Item Level Permission for SharePoint (MOSS/WSS) List/Document Library Programmatically 有些时候&#xff0c;我们需要为文档库里面某个文件设置特殊的权限&#xff0c;这个权限不继承自列表权限&#xff0c;当然最简单的最好是再创建一个列表&#…

echarts 4.0.4怎么下载_怎么让ECharts的提示框tooltip自动轮播?

1. 怎么让ECharts的提示框tooltip自动轮播?在用ECharts做大屏或者可视化展示项目的时候&#xff0c;让提示框tooltip自动轮播是比较常见的需求&#xff0c;给大家推荐一个插件叫echarts-tooltip-auto-show,名字是有点长&#xff0c;但是挺好用的。在hover显示tooltip之后&…

[React Native]高度自增长的TextInput组件

之前我们学习了从零学React Native之11 TextInput了解了TextInput相关的属性。 在开发中,我们有时候有这样的需求, 希望输入区域的高度随着输入内容的长度而增长, 如下&#xff1a; 这时候我们需要自定义一个组件&#xff1a; 在项目中创建AutoExpandingTextInput.js import …

网站开启Gzip压缩-apache

找到并打开apache/conf目录中的httpd.conf文件 httpd.conf中打开deflate_Module和headers_Module模块&#xff0c;具体做法为将 如下两句前面的#去掉&#xff1a;LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so 3.配置文…

第4章 Python 数字图像处理(DIP) - 频率域滤波3 - 取样和取样函数的傅里叶变换、混叠

目录取样和取样函数的傅里叶变换取样取样后的函数的傅里叶变换取样定理混叠由取样后的数据重建&#xff08;复原&#xff09;函数取样和取样函数的傅里叶变换 取样 fˉ(t)f(t)sΔT(t)∑n−∞∞f(t)δ(t−nΔT)(4.27)\bar f(t) f(t)s_{\Delta T}(t) \sum_{n-\infty}^{\infty}…

[转]Android开发,实现可多选的图片ListView,便于批量操作

本文转自&#xff1a;http://www.cnblogs.com/gergulo/archive/2011/06/14/2080629.html 之前项目需要实现一个可多选的图片列表&#xff0c;用户选中一到多张图片后&#xff0c;批量上传。但是网上有可多选普通列表的代码、也有单纯图片列表的代码&#xff0c;却没有两者合并的…

个人信息安全影响评估指南_发布 | 网络安全标准实践指南—移动互联网应用程序(App)收集使用个人信息自评估指南...

关于发布《网络安全标准实践指南—移动互联网应用程序(App)收集使用个人信息自评估指南》的通知信安秘字[2020] 40号各有关单位&#xff1a;为落实《网络安全法》相关要求&#xff0c;围绕中央网信办、工信部、公安部、市场监管总局联合制定的《App违法违规收集使用个人信息行为…

Go的50度灰:Golang新开发者要注意的陷阱和常见错误

Go的50度灰&#xff1a;Golang新开发者要注意的陷阱和常见错误 http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/