django入门进阶13_异常之makemigrations

makemigrations是django中的常用操作,但是坑也比较多。
坑的主要原因,使用django的manage.py makemigrations,django会加载整个项目,而不仅仅是models.py。而这会引发一系列问题。

python入门08_python_interview_question学习笔记

8.将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典 {k:1,k1:2,…}

python实战08_多线程性能分析(装饰器和chromeTrace)

多线程开发时,需要进行性能分析时,希望查看各线程(进程的执行时序图)
类似如下效果

python实战07_调试pdb

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。

python实战10_pytest测试和覆盖率

插件安装:pip install pytest-cov
命令:pytest –cov=src –cov-report=html
src:python源代码路径(文件夹形式,不支持模块or模块.py等形式)
注意:文件夹下所有符合文件名:test_._test.py都必须能跑通,否则html报表中只有函数定义,没有函数内的代码执行情况。

django入门进阶07_用户模块与权限系统

Django默认提供了用户权限管理模块auth

django入门进阶08_数据库事务

django入门进阶09_中间件

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

python进阶21_再识单例模式

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

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

多线程bug处理记录

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入门进阶11_websocket

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

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大概率都是瓶颈,所以使用线程其实也的确有些优势。个人而言,选择进程和线程较为重视的安全性,进程数据隔离较好,互不干扰。其次就是公用数据占比,如果大多数数据都需公用,那么线程也会比进程更佳,避免了进程较多的数据共享问题。
线程而言,难点数据一致性,

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

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

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

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

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

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

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

何时使用多进程(线程)

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

GIL,线程锁

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

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

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

同步和异步

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

建立项目

python进阶03_UnboundLocalError和NameError错误

几个概念

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应用

python进阶02_yield

yield关键字之前见过,也能读懂,但开发时也不大敢使用,感觉理解还是不够充分。刚好项目代码中有涉及,顺便再学习学习。
在理解yield之前,

django入门进阶12_信号

看起来简单,用起来简单。理解起来则未必容易。上学那会这一块就没整明白,这两天又查了下资料,算是基本弄懂了。
为何难以理解?个人感觉起名占了很大一部分,如果signal命名为“观察者”,“监控者”,“盯梢者”,就容易理解多了。其本质就是一种典型观察者模式。命名为信号,第一感觉是”信号量“类似的东西。

python进阶01_偏函数

定义:偏函数的第二个部分(可变参数),按原有函数的参数顺序进行补充,参数将作用在原函数上,最后偏函数返回一个新函数(类似于,装饰器decorator,对于函数进行二次包装,产生特殊效果;但又不同于装饰器,偏函数产生了一个新函数,而装饰器,可改变被装饰函数的函数入口地址也可以不影响原函数)

python入门06_标准库实例教程学习笔记

文本处理

python实战04_常见坑

何谓坑:凡是和大多数人的直观理解不一致的,都可称之为“坑”

python实战02_异常报错

百度自然语言处理报错:UnicodeEncodeError: ‘gbk’ codec can’t encode character ‘\U0001f602’ in posit

python入门02_简明python教程笔记

python入门01_廖雪峰python教程笔记

高级特性

python入门05_数据可视化

简介

python入门04_map,numpy,pandas速查

Map操作

python入门03_int的四舍五入

默认:向下取整。
正常情况下 int(5.5) 结果为5

python实战01_FFT快速傅里叶变换

本科小作业,快速傅里叶变换
python3.2

Your browser is out-of-date!

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

×