web后端
图 南
这个作者很懒,什么都没留下…
展开
-
不结巴的你 会Jieba 分词吗?
jieba 是一款优秀的 Python 第三方中文分词库,jieba 支持三种分词模式:精确模式:试图将句子最精确地切开,适合文本分析;全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词功能:分词,添加自定义词典,关键词提取,词性标注,并行分词,Tokenize:返回词语在原文的起始位置,ChineseAnalyzer for Whoosh 搜索引擎。...原创 2020-08-06 09:22:54 · 70 阅读 · 0 评论 -
你了解 Django REST framework 吗?
Django REST framework 是一个强大而灵活的 Web API 工具。使用 RESTframework 的理由有:Web browsable API 对开发者有极大的好处 ;包括 OAuth1a 和 OAuth2 的认证策略 ;支持 ORM 和非 ORM 数据资源的序列化 ;全程自定义开发——如果不想使用更加强大的功能,可仅仅使用常规的 function-based views ;额外的文档和强大的社区支持 。...原创 2020-08-06 09:20:31 · 103 阅读 · 0 评论 -
varchar 与char 的区别?
varchar 与char 的区别? char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。而 varchar 则处可变长度但他要在总长度上加 1 字符,这个用来存储位置。所以在处理速度上 char 要比 varchar 快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用 char 类型,反之可以用 varchar 类型,...原创 2020-08-06 09:18:55 · 120 阅读 · 0 评论 -
当面试官问你,代码优化你有什么想法的时候
代码优化从哪方面考虑?有什么想法?1、优化算法时间算法的时间复杂度对程序的执行效率影响最大,在 Python 中可以通过选择合适的数据结构来优化时间复杂度,如 list 和 set 查找某一个元素的时间复杂度分别是 O(n)和 O(1)。不同的场景有不同的优化方式,总得来说,一般有分治,分支界限,贪心,动态规划等思想。2、循环优化每种编程语言都会强调需要优化循环。当使用 Python 的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。每一次原创 2020-08-06 09:17:49 · 348 阅读 · 0 评论 -
Django 重定向你是如何实现的?用的什么状态码?
使用 HttpResponseRedirectfrom django.http import HttpResponseRedirect def update_time(request): # 表单处理 OR 逻辑处理 return HttpResponseRedirect('/') #跳转到主界面 # 如果需要传参数 # return HttpResponseRedirect('/commons/index/?message=error')redirec..原创 2020-08-06 09:03:52 · 226 阅读 · 0 评论 -
django 的数据库优化你都知道什么?
django 的数据库优化1. 设计表时,尽量少使用外键,因为外键约束会影响插入和删除性能;2. 使用缓存,减少对数据库的访问;3. 在 orm 框架下设置表时,能用 varchar 确定字段长度时,就别用 text;4. 可以给搜索频率高的字段属性,在定义时创建索引;5. 若页面只需要数据库里某一个两个字段时,可以用 QuerySet.values();6. Django orm 框架下的 Querysets 本来就有缓存的;7. 如果一个页面需要多次连接数据库,最好一次性取出所有需要的数据原创 2020-08-05 10:13:54 · 94 阅读 · 0 评论 -
apache 和 nginx 的区别?
Nginx 相对 Apache 的优点:轻量级,同样起 web 服务,比 apache 占用更少的内存及资源;抗并发,nginx 处理请求是异步非阻塞的,支持更多的并发连接,而 apache 则是阻塞型的,在高 并发下 nginx 能保持低资源低消耗高性能;配置简洁; 高度模块化的设计,编写模块相对简单; 社区活跃。Apache 相对 Nginx 的优点:rewrite ,比 nginx 的 rewrite 强大;模块超多,基本想到的都可以找到;少 bug ,nginx..原创 2020-08-05 10:11:47 · 86 阅读 · 0 评论 -
uWSGI 和 nginx 这两位,你知道他们是怎么强强联手的吗?
谈一下你对 uWSGI 和 nginx 的理解?uWSGI 是一个 Web 服务器,它实现了 WSGI 协议、uwsgi协议、http协议 等。WSGI 是一种通信协议。uwsgi 是一种线路协议而不是通信协议,常用于在 uWSGI 服务器与其他网络服务器的数据通信。Nginx是轻量级的高性能Web服务器,提供反向代理、负载均衡、缓存等一系列重要特性。用 C 语言编写,执行效率高稳定性高,最大支持 5 万个并发连接,但只占用很少的内存空间。uWSGI 和 nginx 怎么通原创 2020-08-05 10:09:46 · 386 阅读 · 0 评论 -
csrf 是怎么攻击你的你知道吗?
csrf 攻击的流程用户打开浏览器,访问受信任的安全网站A,输入用户名和密码请求登录网站A。网站 A 验证用户信息,用户信息通过验证后,网站 A 产生 Cookie 信息并返回给浏览器。登陆成功后,用户可以正常请求网站A。用户在不登出的情况下,用同一浏览器访问恶意网站B。恶意网站B在用户不知情的情况下,利用cookie自动登录的特点,伪造用户的身份,攻击网站A。防范方法:django 的 settings.py 中打开 django.middleware.csrf.CsrfViewMi原创 2020-08-05 10:06:49 · 126 阅读 · 0 评论 -
django 中间件,就像是各个关口的守关大将一样
django 中间件的使用中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改变 Django 的输入或输出。每个中间件组件负责做一些特定的功能。中间件类:中间件类须继承自 django.utils.deprecation.MiddlewareMixin类中间件类须实现下列五个方法中的一个或多个:def process_request(self, request): 执行路由之前被调用,在每个请求上调用,返回None或HttpR原创 2020-08-05 10:04:15 · 82 阅读 · 0 评论 -
为什么使用缓存? django怎么使用缓存?浏览器缓存?
用缓存,主要有两个用途:提高性能、抗高并发Django中提供多种缓存方式,如需使用需要在settings.py中进行配置:数据库缓存数据库缓存常用的是 redis 数据库,优点是 redis 是基于内存的 k v 型存储方式,读取比较快,而且也支持数据的压缩【压缩命令:"COMPRESSOR": "django_redis.compressors.zlib.ZlibCompressor",】文件系统缓存本地系统缓存缓存过期怎么删除问题?缓存过期处理:1)数量超过 300 , 直接原创 2020-08-05 10:00:37 · 260 阅读 · 0 评论 -
cookies 和 session 都不懂还说会 django?
谈谈 cookies 和 session因为HTTP协议是无状态的,导致会话状态难以保持。Cookies和Session就是为了保持会话状态而诞生的两个存储技术。cookies和session的区别:Cookie 把数据存放在客户的浏览器上,Session 把数据放在服务器上(数据库里)。因为cookies有自动提交的特点,把数据存在浏览器上,别人可以利用这一点进行 csrf 攻击。从安全角度考虑,建议使用session。因为Session 在一定时间内会保存在服务器上。当访问增多,会比较占原创 2020-08-05 09:41:36 · 82 阅读 · 0 评论 -
django 中模型类的关系你知道有什么嘛?
django 中模型类的关系一对一models.OneToOneField() 定义在哪个类中都可以一对多models.ForeignKey() 定义在多的类中。多对多models.ManyToManyField() 定义在哪个类中都可以。原创 2020-08-05 09:34:43 · 137 阅读 · 0 评论 -
你会使用 django 中 models 的 ORM吗?
Django 中 models ORM 的使用查询数据:get() 查询单个数据,查不到报错,查多了也报错,返回满足条件的唯一一条数据all() 查询所有数据,返回QuerySet容器对象,内部存放 MyModel 实例filter() 查询指定条件数据,返回QuerySet容器对象,内部存放 MyModel 实例values() 查询指定列数据,返回查询结果容器,容器内存字典,每个字典代表一条数据exclude() 查询不满足此条件的数据,返回不包含此条件的全部的数原创 2020-08-05 09:31:27 · 156 阅读 · 0 评论 -
过来看看 django 的反向解析
什么是反向解析?使用场景:模板中的超链接,视图中的重定向url 反向解析是指在视图或模板中,用path定义的名称来查找或计算出相应的路由path 函数的语法path (route, views, name=“别名”)例如:path ( ‘page’, views.page_view, name=“page_url” )path() 的name关键字参数作用:根据path中的name=关键字传参给 url确定了个唯一确定的名字,在模板或视图中,可以通过这个名字反向推断原创 2020-08-05 09:26:54 · 162 阅读 · 0 评论 -
get 请求和 post 请求两员大将
get 请求和 post 请求的区别GET请求和POST请求,统一由视图函数接受,使用时需用request.method进行判断。GET请求一般用于向服务器获取数据,如果需要给服务器传递数据,通常会以查询字符串(Query String)的形式传递,且不要传递敏感数据。POST请求一般用于向服务器提交大量数据,使用POST请求时,需要取消csrf验证。即禁止掉 settings.py 中 MIDDLEWARE 中的 CsrfViewsMiddleWare 的中间件,否则Django将会拒绝客户端发来原创 2020-08-04 15:13:48 · 72 阅读 · 0 评论 -
MVC,MTV 来邀请你喝一杯
MVC和MTV的作用都是降低模块间的耦合度(解耦)MVC:模型层(Model) :主要用于对数据库层的封装;视图层(View) :用于向用户展示结果,视图层控制显示什么(what),怎么显示,显示成什么样子(how);控制层(Controller):用于处理请求、获取数据、返回结果(重要)。MTV:模型层(Model) :负责与数据库交互;模板层(Template): 负责呈现内容到浏览器,模板层用于怎么显示,显示成什么样子;视图层(View) :是核心,负责接收请求原创 2020-08-04 15:11:27 · 72 阅读 · 0 评论