
python develop
文章平均质量分 68
some technical points during python developing
啊了个呜
Talk is cheap, show me your code.
展开
-
Django中使用celery
Django中使用celery安装redis:(37条消息) CentOS 8安装Redis的两种方式_sinat_41292836的博客-优快云博客_centos8 rediswin10下安装redis - W.Yentl - 博客园 (cnblogs.com)# windows下的命令redis-server.exe redis.windows.confredis-server --service-install redis.windows.confredis-server --serv原创 2022-01-21 17:40:32 · 1443 阅读 · 0 评论 -
django里面使用Cache
django里面使用Cache此案例中使用redis做缓存:1. 安装并配置redis 2. 安装django-redis用于django连接redis数据库 3. 在django 的配置文件进行配置 4. 在views里面进行逻辑处理# 1. 安装且配置redis# 以windows为例# 1.1 下载解压包,直接解压到任意路径下即可# windows下载地址:ttps://github.com/MSOpenTech/redis/releases# 1.2 启动 切换到解压好的redis路原创 2022-01-19 18:26:06 · 1897 阅读 · 0 评论 -
Computer English
Computer English被动语态,非谓语动词,名词化结构和从句等, 常用it…句型结构, 用虚拟语气表达假设或建议,在说明事理并涉及各种前提和条件时,可以采用虚拟语气名词性词组多,合成新词多,介词短语多,非限定动词(尤其是分词)使用频率高CPU(Central Processing Unit)WPS(Word Processing System)NT(Net Technology)IT(Information Technology)# 用虚拟语气表达假设或建议,在说明事理并涉及各种前原创 2022-01-19 18:24:55 · 818 阅读 · 0 评论 -
高并发处理
高并发处理-锁def test_demo(): if concurrnt_control('etc_user_id_add_score:%s' % user_id, timeout=30) == 1: do_something() def concurrnt_control(key, timeout=10): ''' :param timeout: 超时时间 :param key: redis key值 :return:原创 2022-01-19 18:05:53 · 941 阅读 · 0 评论 -
ELK安装及配置
一. Logstash6的安装cd /optwget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.2.tar.gztar -zxvf logstash-6.5.2.tar.gzmv logstash-6.5.2 logstashcd /opt/logstash/configcp logstash-sample.conf syslog.confvi syslog.conf# 定义日志源input { sy原创 2021-09-30 18:01:42 · 402 阅读 · 0 评论 -
Centos下Nginx+Gunicorn+Django+supervisor项目部署
Centos下Nginx+Gunicorn+Django+supervisor项目部署安装需要的包yum install python3yum install nginxyum install gunicornpip install geventpip install supervisorgunicorn的简单使用,在服务器上任意一个位置新建一个python文件, 文件名自己定义:vi testgunicorn.py# 在testgunicorn.py中输入以下内容def app原创 2021-08-16 15:35:50 · 820 阅读 · 0 评论 -
virtualenv配置python虚拟环境
virtualenv 和 virtualenvwrapper配置python虚拟环境# 下载virtualenv和virtualenvwrapperpip install virtualenvpip install virtualenvwrapper # 这是对virtualenv的封装版本,一定要在virtualenv后安装# 切换到家目录cdvi .bashrc# 在.bashrc的最下面添加以下内容VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3原创 2021-08-13 15:56:20 · 176 阅读 · 0 评论 -
gunicorn+nginx+django
gunicorn -w 2 -b 0.0.0.0:18000 testgunicorn:appsupervisord -c /etc/supervisord.confsupervisorctl -c /etc/supervisord.conf statusgunicorn Djanfo_project.wsgi -c gunicorn.py./restart.sh startsupervisorctl shutdownsupervisorctl statussupervisorctl upda原创 2021-08-13 15:54:36 · 658 阅读 · 0 评论 -
uWSGI, uwsgi,WSGI
uWSGI, uwsgi,WSGI一. uWSGI, uwsgi,WSGI之间的区别联系uWSGI是web服务器,实现了WSGI通信规范,uwsgi协议, http等协议# uWSGI--web服务器的安装pip install uwsgiWSGI全名Web Server Gateway Interface, 是web服务器与web应用通信的一种规范uwsgi是WSGI通信规范中的一种自有协议二. uWSGI—web 服务器的常用命令及配置uwsgi --http :808原创 2021-08-13 15:53:46 · 387 阅读 · 0 评论 -
centos下nginx+uWSGI+Django+域名部署项目
云服务器centos下nginx+uWSGI+Django+域名部署安装nginxyum install nginxvi /etc/nginx/conf.d/builddemo_nginx.confbuilddemo_nginx.conf文件名字是自定义的, 在此文件中输入以下内容server { server_name 域名或者主机外网ip; listen 17879; location / { include uwsgi_params;原创 2021-08-13 15:51:33 · 257 阅读 · 0 评论 -
抽象数据类型映射-------ADT Map
抽象数据类型"映射"-------ADT Mappython 最有用的数据类型之一: ‘字典’字典是一种可以保存key-value键值对的数据类型,其中关键码key可用于查询关联的数据值data,这种键值关联的方法称为"映射Map"ADT Map的结构时键-值关联的无序集合:关键码具有唯一性通过关键码可以唯一确定一个数据值ADT Map定义的操作如下:Map():创建一个空映射,返回空映射对象;put(key,val): 将key-val关联对加入映射中,如果key已存在,将val替换原创 2021-03-10 18:25:40 · 304 阅读 · 0 评论 -
散列冲突解决方案
散列冲突解决方案如果两个数据项被散列映射到同一个槽,需要一个系统化的方法在散列表中保存第二个数据项,这个过程称为==“解决冲突”==如果散列函数是完美的,那么就不会有散列冲突,但完美散列函数常常是不现实的,解决散列冲突成为散列方法中很重要的一部分解决散列冲突的一种方法就是为冲突的数据项再找一个开放的空槽来保存—“线性探测”最简单方法就是从冲突的槽开始往后扫描,直到碰到一个空槽,如果到散列表尾部还未找到,则从手部接着扫描这种寻找空槽的技术被称为"开放定址"(open addressing)向原创 2021-03-10 18:25:05 · 523 阅读 · 0 评论 -
散列
散列(哈希)一. 概念如果数据项之间是按照大小排好序的话,就可以利用二分查找来降低算法复杂度;现在我们进一步来构造一个新的数据结构,能使得查找算法的复杂度降为O(1),这种概念叫做"散列Hashing"能够使得查找的次数降低到常数级别,我们对数据项所处的位置就必须有更多的先验知识如果我们事先能知道要找的数据项应该出现在数据集中的什么位置,就可以直接到那个位置看看数据项是否存在即可又数据项的值来确定其存放位置,如何能做到这一点呢?散列表是一种数据集,其中数据项的存储方式尤其有利于将来原创 2021-03-10 18:23:43 · 211 阅读 · 0 评论 -
中缀表达式转换为前缀和后缀形式
中缀表达式转换为前缀和后缀形式A+B*C, 如果写成全括号形式:(A+(B*C)), 显式地表达了计算次序, 每一对括号都包含了一组完整的操作符和操作数看子表达式(B*C)的右括号,如果把操作符*移到右括号的位置,替代它,再删去左括号,得到BC*进一步再把更多的操作符移动到相应的右括号处替代它,再删去左括号,那么整个表达式就转换为后缀表达式了同样地,如果我们把操作符移动到左括号的位置替代它,然后删掉所有的右括号,也就得到了前缀表达式.所以,中缀表达式转换为前缀和后缀形式只需两原创 2021-03-10 18:22:51 · 699 阅读 · 1 评论 -
图---最短路径问题
图—最短路径问题当我们通过网络浏览网页,发送电子邮件,QQ消息传输的时候,数据会在联网设备之间流动当PC上的浏览器向服务器请求一个网页时,请求信息需要先通过本地局域网,由路由器A发送到Internet,请求信息沿着Internet中的众多路由器传播,最后到达服务器本地局域网所属的路由器B,从而传给服务器标注"Internet"的云状结构,实际上是一个由路由器连接成的网络这些路由器各自独立而又协同工作,负责将信息从Internet的一端传送到另一端我们可以通过"tracerou原创 2021-02-26 18:06:44 · 175 阅读 · 0 评论 -
图的应用拓扑排序
图的应用:拓扑排序(Toplogical Sort)很多问题都介意转化为图,利用图算法解决,比如早餐吃薄煎饼的过程:以动作为顶点,以先后次序为有向边从工作流程图得到工作次序排列的算法称为"拓扑排序"拓扑排序处理一个DAG,输出顶点的线性序列使得两个顶点v,w,如果G中有(v,w)边,在线性序列中v就出现在w之前拓扑序列广泛应用在依赖事件的排序上,还可以用在项目管理,数据库查询优化和矩阵乘法的次序优化上拓扑排序可以采用DFS很好地实现将工作流程建立为图,工作项是节点原创 2021-02-26 16:12:19 · 155 阅读 · 0 评论 -
图--强连通分支
图–强连通分支我们关注一下互联网相关的非常巨大图由主机通过网线(或无线)连接而形成的图以及由网页通过超链接连接而形成的图以网页(URI作为id)为顶点,网页内包含的超链接作为边,可以转换为一个有向图我们可以猜想,web的底层结构可能存在某些同类网站的聚集在图中发现高度聚集节点群的算法,即寻找"强连通分支"算法强连通分支,定义为图G的一个子集CC中的任意两个顶点v,w之间都有路径来回,即(v,w) (w,v)都是C的路径,而且C是具有这样性质的最大子集下图是原创 2021-02-26 16:06:01 · 2556 阅读 · 0 评论 -
图--深度优先搜索
图–深度优先搜索骑士周游问题:在一个棋盘山,一个棋子"马",按照"马走日"的规则,从一个格子出发,要走遍所有棋盘格恰好一次,把一个这样的走棋序列称为一次"周游"采用图搜索算法,是解决骑士问题最容易理解和编程的方案之一解决方法:首先将合法走棋次序表示为一个图将棋盘格作为顶点按照"马走日"规则的走棋步骤作为连接边建立每一个棋盘格的所有合法走棋步骤能够到达的棋盘格关系图采用图搜索算法搜寻一个长度为(行×列-1)的路径,路径上包含每个顶点恰一次深度优先搜索解决骑士周游原创 2021-02-26 16:03:44 · 187 阅读 · 0 评论 -
图---广度优先搜索(BFS)
图—广度优先搜索(BFS)Breadth First Search是搜索图的最简单算法之一,给定图G,以及开始搜索的起始顶点sBFS搜索所有从s可到达顶点的边,而且在达到更远的距离k+1的顶点之前,BFS会找到全部距离为k的顶点可以想象为以s为根,构建一棵树的过程,从顶部向下逐步增加层次广度优先搜索能保证在增加层次之前,添加了所有兄弟结点到树中从Fool开始搜索为了跟踪顶点的加入过程,并避免重复顶点,要为顶点增加3个属性距离distance:从起始顶点到此顶点路径长度原创 2021-02-26 16:01:03 · 934 阅读 · 0 评论 -
图
图圈(cycle)圈是首尾顶点相同的路径, 如下图(V5, V2, V3,V5)是一个圈如果有向图中不存在任何圈,则称为"有向无圈图(DAG)"–directed acyclic graph图的抽象数据类型graph(): 创建一个空的图addVertex(vert): 将顶点vert加入图中addEdge(fromVert, toVert): 添加有向边addEdge(fromvert, tovert, weight): 添加带权的有向边getVertex(vKey): 查找名称为vK原创 2021-02-26 15:59:41 · 96 阅读 · 0 评论 -
Iterable和Iterator
Iterable和Iteratorfrom collections.abc import *c = list() a=[1,2,3,4]原创 2021-02-23 15:46:00 · 141 阅读 · 0 评论 -
排序和搜索
排序和搜索排序算法:是一种能将一串数据按照特定顺序进行排列的一种算法一. 排序算法的稳定性稳定性: 稳定排序算法会让原本有相等键值的记录维持相对次序,也就是如果一个排序算法时稳定的,当有两个相同键值的记录R和S,且在原本的列表中R出现在S的前面,在排序过的列表中R也将是在S之前(稳定的算法可能更适合一些实际情况的需要,排序之前的原序列里的顺序可能隐含一些有用的信息,表示一些与实际问题相关的性质,稳定的排序算法将维持这些信息和性质)适应性:排序操作可能被用于处理不同长度的序列,复杂度的描述方式考虑了原创 2021-02-02 17:37:31 · 100 阅读 · 0 评论 -
循环单链表
循环单链表单链表的缺点:尾端加入元素操作的效率低,因为这时只能从表头开始查找,直至找到表的最后一个结点,而后才能链接新结点循环单链表: 最后一个结点的next域不用None,而是指向表的最后一个结点实现循环单链表,采用b), 这样可以同时支持O(1)时间的表头/表尾插入和O(1)时间的表头删除,哪个结点算是表头或表尾,主要是概念问题,从表的内部形态上无法区分这种表对象只需要一个数据域_rear, 它在逻辑上始终引用这表的尾结点,前端加入结点,就是在尾端结点和首结点之间加入新的首结点,尾结点引用原创 2021-02-02 17:30:07 · 406 阅读 · 0 评论 -
链表
单链表实现线性表的基本需要是:能够找到表中的首元素(无论直接或间接)从表中的任一元素出发,都可以找到它之后的下一个元素采用链接方式方式实现线性表的基本思想如下:把表中的元素分别存储在一批独立的存储块(称为表的结点)里保证从组成表结构中的任一结点可找到与其相关的下一节点在前一节点里用链接的方式显示地记录域下一结点之间的关联这样,只要能找到组成一个表结构的第一个结点,就能顺序找到属于这个表的其他结点,从这些结点里可以看到这个表中的所有元素一. 单链表单向链接表(简称为单链表或者链表)原创 2021-02-02 17:29:12 · 110 阅读 · 0 评论 -
线性表
线性表一. 线性表的概念线性表(简称表)就是这样一组元素(的序列)的抽象,一个线性表是某类元素的一个集合,还记录着元素之间的一种顺序关系.线性表是最基本的数据结构之一,它还经常被用作更复杂的数据结构的实现基础,在实际应用中可能需要各种各样的线性表,如整数的表,字符串的表,某种复杂结构的表等,python内置类型list和tuple都以具体的方式支持程序里的这类需要,它们都可以看作线性表的实现.表可以看作一种抽象的数学概念,也可以作为一种抽象数据类型在抽象地讨论线性表时,首先要考虑一个(有穷或无穷的原创 2021-02-02 17:21:39 · 478 阅读 · 0 评论 -
优先队列
优先队列**优先队列:**另一种重要的缓存结构,基于对一类二叉树的认识,可以做出优先队列的高效实现.一.概念作为缓存结构,优先队列与栈和队列类似,可以将数据元素保存其中,可以访问和弹出,优先队列的特点是存入其中的每项数据都另外附有一个数值,表示这个项的优先程度,称为其优先级,优先队列应该保证,在任何时候访问或者弹出的,总是当时在这个结构里保存的所有元素值中优先级最高的,如果该元素不弹出,再次访问还将得到它. 在一些场景中,可能出现不同元素具有相同优先级的情况,如果不止一个元素的优先级最高,优先队列将原创 2021-02-02 17:18:43 · 332 阅读 · 1 评论 -
树形结构和堆
树形结构和堆可以改善优先队列的操作性能一.线性和树形结构首先分析效率低的原因:按序插入操作低效,其根源是需要沿着表顺序检索插入位置,对于顺序表,需要移动O(n)个元素,对于链接表,需要顺着链接爬行O(n)步.如果不改变数据的线性顺序存储方式,就不可能突破O(n)的复杂度限制, 要做出操作效率更高的优先队列,必须考虑其他数据结构组织方式利用树形结构的祖先/子孙序,有可能得到更好的操作效率一般而言,确定最优先元素并不需要与所有其他元素比较,以体育比赛中的淘汰赛为例,假设有n名选手参原创 2021-02-02 17:18:02 · 581 阅读 · 0 评论 -
二叉树的简单应用 表达式树
二叉树的简单应用: 表达式树这一应用主要利用二叉树的结构.假如现在有一个数学公式:(2-3)*(4+5)抛弃括号以及优先级的概念,仅仅改变符号的顺序**∗−23+45*-23+45∗−23+45**公式中的操作符提前了,每个操作符后面跟着两个操作数,从左向右遍历就可以得到唯一的计算步骤,这就是波兰表达式如果有以下中缀表达式:(2-3)*(4+5)为了快速求取先缀以及后缀表达式,我们首先把括号补全,变成下面这样:((2-3)*(4+5))然后把所有操作符放在它所对应的左括号的前面,就是这样:原创 2021-01-12 18:28:54 · 1979 阅读 · 0 评论 -
二叉树的抽象数据类型
二叉树的抽象数据类型一. 理论分析结点是二叉树的基础,通常主要用结点保存与应用有关的信息.作为二叉树的表示,还需要记录二叉树的结构信息,至少需要保证能检查结点的父子关系,例如,能从一个结点找到其左/右子结点下面 一个基本的二叉树抽象数据类型的定义:ADT BinTree: # 一个二叉树抽象数据类型 BinTree(self, data, left, right) # 构造操作,创建一个新二叉树 is_empty(self) # 判断self是否为一个空二叉树原创 2021-01-11 14:54:41 · 2717 阅读 · 0 评论 -
树和二叉树
树和二叉树一. 树形结构的特点一个结构如果不为空,其中就存在着唯一的起始结点,称为树根(root)树根外的其余结点有且只有一个前驱. 一个结点有0个或多个后继结构里的所有结点都在树根结点通过后继关系可达的结点集合里结点之间的联系不会形成循环关系,即结点之间的联系形成了一种序,但一般而言不会像线性表形成一个全序从这种结构里的任意两个不同结点出发,通过后继关系可达的两个结点集合,或者互不相交,或者一个集合是另一个集合的子集树形结构里的结点形成了一种层次结构,可以用于表示各种常见的层次性关系二原创 2021-01-08 17:32:12 · 291 阅读 · 0 评论 -
requests下载图片
requests下载图片一. 首先是直接把图片显示出来,采用下面的方式 def download_img(imgurl): try: rsp = requests.get(imgurl) if rsp.status_code == 200: content = rsp.content # 注意下面open里面的mode是"wb+", 因为content的类原创 2020-12-23 18:10:45 · 1920 阅读 · 1 评论 -
Python的time模块
Python的time模块import timetime.time() # 返回时间戳time.localtime(time.time()) # time.struct格式, 有年月日时分秒周第几天年第几天等信息time.asctime(time.localtime(time.time())) # 格式化的日期时间格式,type是strtime.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) # 格式化的日期时间格式为自原创 2020-12-09 15:33:44 · 118 阅读 · 0 评论 -
python开发过程中遇到的一些报错
错误一:这是因为installed_apps里面没有添加django.forms错误二:使用django-markdownx也许会遇到这个错,需要在templates/markdownx/下面新建一个文件widget.html错误三:Django Crispy Forms TypeError: init() got an unexpected keyword argument ‘instance’自定义的form需要继承自forms.ModelForm错误四使用django-ta原创 2020-12-01 18:09:40 · 648 阅读 · 0 评论 -
mysql的常用语句
mysql的常用语句select a.*,b.name, b.mobile, b.city_id from card_manage_broker a JOIN card_broker b on a.user_id=b.user_id where a.function=5 or a.function=6 order by modify_time descselect a.user_id, left(a.modify_time,10), b.* from (SELECT * from card_ma原创 2020-12-01 17:47:40 · 148 阅读 · 0 评论 -
js的一些常用语法
js和Jquery的一些常用语法jquery教程: https://www.w3cschool.cn/jquery/kv69gfnm.html转载 2020-12-01 17:19:22 · 106 阅读 · 0 评论 -
bootstrap file input多文件上传插件
bootstrap file input多文件上传插件文章链接: https://blog.youkuaiyun.com/y19910825/article/details/80242331 https://blog.youkuaiyun.com/qq_41520636/article/details/82928825转载 2020-12-01 17:18:38 · 219 阅读 · 0 评论 -
学习AJAX
学习AJAXvar xmlhttp;if (window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest();}else{ // IE6, IE5 浏览器执行代码 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}<!DOCTYPE html&原创 2020-12-01 16:54:23 · 89 阅读 · 0 评论 -
配置一台新的服务器
配置一台新的服务器安装anaconda: https://blog.youkuaiyun.com/jh0218/article/details/85097061安装mysql: https://www.cnblogs.com/luohanguo/p/9045391.htmlyum install redisyum install httpie安装dockercurl -sSL https://get.daocloud.io/docker | shhttps://www.runoob.co原创 2020-12-01 16:12:09 · 431 阅读 · 0 评论 -
centos7启动网卡
启动网卡在 vim /etc/sysconfig/network-scripts/ifcfg-eth0里面网卡是开机自启动的,但是重启之后,网卡还是没有启动,需要使用service network restart才生效.没有启动网卡的话就无法使用ssh进行连接服务器.为了解决这个问题,可以执行一下命令:systemctl enable network/sbin/chkconfig network on使用以下命令查看sshd是否启动systemctl start sshdsystemct原创 2020-12-01 16:01:44 · 2373 阅读 · 0 评论 -
学学Dockerfile
学学DockerfileDockerfile中包括FROM、MAINTAINER、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD等13个指令。下面是一个demo实例,可做学习参考:Dockerfile指令详解 - Ruthless - 博客园 (cnblogs.com)Dockerfile 时区设置 - Ruthless - 博客园 (cnblogs.com)下面我们尝试着使用Dockerfile将django原创 2020-12-01 15:35:52 · 84 阅读 · 0 评论