django入门进阶09中间件

django的中间件(middleware)是一个轻量级的插件系统,在django中的请求和响应中,可以利用中间件干预视图的请求和响应。

python进阶21再识单例模式

父子进程内部变量是否可以直接共享,当然不是,需要“特殊加工”下才行。
那么在web开发中的单例模式,是真正的全局唯一的单例么?自然也是
惭愧,自己用单例还是比较多的,还真是第一次注意到这一点。之前使用时,想当然的以为就是(应用程序级别)全局唯一的,譬如java的类里的static,python模块中的定义的对象(只会加载一次),但严格说,都是错误的用法(侥幸的是,尚未出现由此导致的Bug,大概率因为自己用单例大多是为了保存静态内容(只查,不改),加速查询而已。并未用来做全局性统计)。

RK3399产品参数分析

RK3399的产品特性

python入门07wtfbook疑问和验证

cpp_学习笔记

大学时学习的第一门编程语言就是C,实际开发时C++的使用还是较多的,基本上前三年均以Cpp为主。
无奈读研和工作后就从未再接触过C和CPP了,目前公司产品需要,再回头拾起Cpp的知识吧,复习为主,只摘录重点。

cpp_gcc,make和cmake

gcc,make,cmake关系

开源阅读07人脸检测和追踪Xlsx

代码来源:github,search,face Detection and track
见Excel:通用技术_开源阅读_技术代码阅读02gunicore,request,flask等.xlsx(略)

python实战06多线程bug处理记录

多线程bug处理记录

开源阅读06flaskXlsx

Flask是一个使用 Python 编写的轻量级 Web 应用框架, 让我们可以使用Python语言快速搭建Web服务, Flask也被称为 “microframework” ,因为它使用简单的核心, 用 extension 增加其他功能。
flask可以看做对jinja2和Werkzeug的二次封装
Jinja2是一个功能齐全的模板引擎。它有完整的unicode支持,所谓模板引擎,可简单理解为”变量替换器“,将网页的变量填充起来
Werkzeug是一个WSGI工具包。WSGI是一个web应用和服务器通信的协议,web应用可以通过WSGI一起工作。
由于Jinja2模板引擎工作简单且界限明确,可看做黑盒,所以将flask看做对Werkzeug的二次封装也ok。

arm64,aarch64,armv8,armel,armhf以及x86,arm,mips杂谈

arm64和aarch64区别

linux_aptget,pip之源码安装

由于最近需要在arm上部署产品(aarch64),而很多软件使用apt-get或pip是无法安装的或者安装的版本过旧,只能采用源代码安装的方式。

开源阅读05imutils

imutils 是一个图像处理工具包,它对 opencv 的一些方法进行了二次加工,使其更加简单易用。相比较于 opencv 的学习难度,导致很多方法使用起来需要一定的基础,新手可能会起步的较慢,而 imutils 使用起来比较便利,能够辅助我们理解 opencv

django入门进阶10部署上线(nginx,uwsgi,supervisor)

完善的django项目上线,有很多种上线的方法,比如apache, uwsgi, nginx等。这里只介绍2种,一种是django自带的,另外一种则是nginx + uwsgi完成介绍。

django入门进阶06静态文件和模板

静态文件和模板
静态文件:css,js,image,如果作为纯粹的web应用来看,静态文件的响应并不属于web应用范畴,因为静态文件不涉及业务逻辑,也不需开发业务代码。但几乎100%的web应用都支持对静态文件的直接访问。为何?主要是web应用基本上必然依赖css,js,img等静态资源,我们不可能固执的开发一个纯粹的web应用,只支持从url里进入视图函数,也只能从视图函数返回内容(简单来说所有请求路径都必须体现在url_route和view视图中)。而要求用户独立开启静态资源的请求处理服务。所以,先把静态资源服务和包含业务逻辑的web应用独立认识,二者并不相同,但强相关。其本身是独立于应用的
模板:在代码中response渲染中使用的,可以看做view视图的组成部分.所以没有独立url配置,依赖view视图存在,属于应用一部分,包含了业务逻辑(需要渲染),这一点也可以从配置上看出来。

django入门进阶11websocket

本文适合有一定websocket基础的,至少完整看过前后端demo的读者,一窍不通的小白建议先阅读“参考”部分的博文扫扫盲。
基于django的dwebsocket组件(目前虽然不在维护,但正常使用没问题)

linux_手把手教ubuntu搭建rtsp视频推送服务

公司业务需要使用rtsp服务,搜索了几个rtsp源,但都非常不稳定,并且无法指定特定视频作为源。为了方便开发测试,决定自行建立rtsp服务器。

python进阶20之actor

actor模型。actor模式是一种最古老的也是最简单的并行和分布式计算解决方案。
优点:充分利用单线程+事件机制,达到了多线程效果。
缺点,对python而言,由于GIL的存在,毕竟只是单线程,难以匹敌多进程,目前使用并不多。

python进阶19装饰器和闭包

python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。

python进阶18垃圾回收GC

python采用的是引用计数机制为主,标记-清除和分代收集两种机制为辅的策略
Python GC主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。
0代触发将清理所有三代,1代触发会清理1,2代,2代触发后只会清理自己。

python进阶17正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

python进阶16炫技巧

原则:可读性第一(效率固然重要,除非非常明显的效率差异,否则可读性优先)
学习炫技巧,更多为了读懂他人代码,自己开发过程中,相似代码量(可读性),建议使用通俗写法。反对为炫而炫。

python进阶15多继承与Mixin

Mixin解释

python进阶14变量作用域LEGB

作用域

python实战05文件路径(找不到文件)

开发时遇到问题,文件路径不正确,找不到文件等等,都是这一类问题.

python进阶13并发之九多进程和数据共享

使用进程,大概率出现情况是,想当然以为共享了,实际没共享。所以最终程序大概率卡死(部分逻辑没有数据进来,导致的业务逻辑性卡住,并非程序死锁)

python进阶12并发之八多线程与数据同步

python并发首选进程,但偶尔有场景进程无法搞定,比如有些变量是无法序列化的,就无法使用工具包manager()的工具类进行共享。如果自己实现新的共享方法,可能开发量较大,且质量难以保证。此时可考虑用线程处理,规避进程的变量共享难题,而且实际场景中,IO大概率都是瓶颈,所以使用线程其实也的确有些优势。个人而言,选择进程和线程较为重视的安全性,进程数据隔离较好,互不干扰。其次就是公用数据占比,如果大多数数据都需公用,那么线程也会比进程更佳,避免了进程较多的数据共享问题。
线程而言,难点数据一致性,

杂谈_浅谈nginx,gunicorn,flask差异比对

flask(django):Python的Web应用程序(如Flask,django)
nginx:web服务器,用户角度直接对接使用,请求响应的request-response出入口
WSGI(Web Server Gateway Interface),翻译为Python web服务器网关接口,即Python的Web应用程序(如Flask)和Web服务器(如Nginx)之间的一种通信协议。也就是说,如果让你的Web应用在任何服务器上运行,就必须遵循这个协议。

python进阶11并发之七多种并发方式的效率测试

测试map,apply_async,gevent协程爬虫
测试代码:网页爬虫

python进阶10并发之六并行化改造

图示变量含义说明:
1个大step中包含3个小step,大step内部的第一步,二步,三步存在依赖关系(就是内部保持顺序执行)
a1,b1,c1,表示子任务a的第一步,b的第一步,c的第一步.同理a2,表示子任务a的第二步。

linux_cp目录路径和通配符

cp作为linux最常用命令,大部分情况正确使用,偶尔也会犯低级错误。比如,今天自己copy目录就犯错了。特此整理下
以下基于ubuntu16测试(xxx含义为目录a/下的所有文件)

python进阶09并发之五生产者消费者

这也是实际项目中使用较多的一种并发模式,用Queue(JoinableQueue)实现,是Python中最常用的方式(这里的queue特指multiprocess包下的queue,非queue.Queue)。

python进阶07并发之三其他问题

何时使用多进程(线程)

python进阶06并发之二技术点关键词

GIL,线程锁

python进阶05并发之一基本概念

大多编程语言,一旦涉及并发,都会比较复杂,知识点也较多(大多为历史问题,很多技术点现在非常少使用了,但语言层面也提供支持,对于这些冷门点,只需要知道即可,使用时也尽量避免使用这种冷门技术,除非和应用场景非常匹配)。实际使用过程中,只需要知道各名词以及大概功能,大多现用现查,毕竟涉及点太多,而且使用频率也并非很高,一般也就新系统研发会使用,后续维护时基本不会涉及太多。

杂谈_视频rtmp,rmvb,h265区别

h265,h264

python进阶04IO的同步异步,阻塞非阻塞

同步和异步

django入门进阶05快捷复习手册

建立项目

杂谈_可用rtmp直播地址20200517

可用的rtmp直播地址
耀才证券 : rtmp://202.69.69.180:443/webcast/bshdlive-pc
湖南卫视 : rtmp://58.200.131.2:1935/livetv/hunantv
广东卫视:rtmp://58.200.131.2:1935/livetv/gdtv
东方卫视:rtmp://58.200.131.2:1935/livetv/dftv
广西卫视:rtmp://58.200.131.2:1935/livetv/gxtv
一段视频 :rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov

python进阶03UnboundLocalError和NameError错误

几个概念

linux_手把手教ubuntu搭建rtmp视频推送服务

RTMP是流媒体协议。 它是Adobe的私有协议,未完全公开。 一般传输的是flv,f4v格式流。在TCP1个通道上传输命令和数据。

杂谈_深入理解字符,字符集,gbk,utf8

字符,字符集,字符编码概念

django入门进阶04学习笔记04

第二章 视图层

django入门进阶03学习笔记03

第一章:模型层

django入门进阶02学习笔记02

基于教程,刘江的博客教程Django教程:https://www.liujiangblog.com/course/django/87
Django ORM、一对一、一对多、多对多、详解:https://www.cnblogs.com/pythonxiaohu/p/5814247.html

django入门进阶01学习笔记01

学习笔记,第一个Django应用

开源阅读04records

基础

开源阅读03tablib

代码结构合理,支持多种数据格式,通过定义”内部格式”(row,dataset,databook)实现了多种格式的导入和导出。
功能角度类似pandas,也是管理多维表的,相对轻量级一些。这个真的很简单,大概看一下吧

开源阅读02requestsXlsx

最大收获在于代码可读性切分,以及变量命名的合理。
需求驱动的模块划分:一般是有公用方法才提出独立func,没有的话就大段代码堆积,除非非常长的代码,影响阅读效果,才会考虑切分。
可读性驱动的模块划分:request更多偏向于“注释型切分”,按照功能角色进行切分,哪怕只有几行代码,如果是独立小block,也会抽取出独立函数,通过函数名标识代码块功能,所以代码即使不看注释也很容易读懂(当然,request模块本身代码注释也很完善)。
见Excel:通用技术_开源阅读_技术代码阅读02gunicore,request,flask等.xlsx(略)

开源阅读01cpythonDemo

beer

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×