python脚本加密的常用方式

在项目中有时不想别人看到我们写的python脚本内容,这时候我们需要将我们的python脚本进行加密,其实是不像让别人看到我写的代码太LOW了,(*^_^*)python脚本加密常用的有两种方式,一种是将文件.py文件转换为.pyc文件,但是这种加密方式可以被反编译,骗骗小白还是可以的,另一种方式则是使用cython将我们的脚本转换为.so文件我的测试代码很简单func.py文件,存放在test_func目录下#!/usr/bin/python3#coding:utf-8from func import test...

阅读全文

python使用pykafka操作kafka

Kafka是一种分布式的、分区的、多副本的基于发布/订阅的消息系统。它是通过zookeeper进行协调,常见可以用于web/nginx日志、访问日志、消息服务等。主要应用场景为:日志收集系统和消息系统。Kafka的主要设计目标如下:1.以时间复杂度为O(1)的方式提供持久化能力,即使对TB级别以上的数据也能保证常数时间的访问性能。2.高吞吐率,即使在十分廉价的机器上也能实现单机支持每秒100K条消息的传输。3.支持KafkaServer(即Kafka集群的服务器)间的消息分区,及分布式消费,同时保证每个parti...

阅读全文

python-daemon实现后台守护进程

我们可以使用很多种方式让python脚本再后台运行,其中最简单的方式是使用linux下的nohup命令1.nohup命令nohup python test.py &这样test.py脚本就脱离了当前终端的控制,我们如果可以使用ps命令查找进程并关闭2.tmux终端tmux是一个提供后台终端窗口的会话服务,我们只需要开启tmux,然后再tmux窗口中运行脚本,然后退出tmux即可3.python-daemon模块这个模块可以使我们的脚本变为后台守护进程,这个模块需要安装pip install pyt...

阅读全文

flask基于celery实现的异步任务

Celery是一个异步任务队列。你可以使用它在你的应用上下文之外执行任务。总的想法就是你的应用程序可能需要执行任何消耗资源的任务都可以交给任务队列,让你的应用程序自由和快速地响应客户端请求。使用Celery运行后台任务并不像在线程中这样做那么简单。但是好处多多,Celery具有分布式架构,使你的应用易于扩展。一个Celery安装有三个核心组件:Celery客户端:用于发布后台作业。当与Flask一起工作的时候,客户端与Flask应用一起运行。Celeryworkers:这些是运行后台作业的进程。Celery支持本地和远程的...

阅读全文

python3按时间生成日志

之前写过一个“Flask配置logger模块日志生成到日期生成的文件”这个笔记,这里其实和那个差不多,可以看我之前的笔记https://sulao.cn/post/660.html主要还是使用logging模块,主要是一下方法import loggingimport timeimport os#创建loggerlogger = logging.getLogger()#定义日志目录和名字log_dir_name = "logs"log_...

阅读全文

flask使用flask_migrate更新并迁移表数据

在开发程序的过程中,你会发现有时需要修改数据库模型,而且修改之后还需要更新数据库。仅当数据库表不存在时,Flask-SQLAlchemy才会根据模型进行创建。因此,更新表的唯一方式就是先删除旧表,不过这样做会丢失数据库中的所有数据。更新表的更好方法是使用数据库迁移框架。源码版本控制工具可以跟踪源码文件的变化,类似地,数据库迁移框架能跟踪数据库模式的变化,然后增量式的把变化应用到数据库中这个模块需要我们单独安装pip install flask_migrate使用方法也很简单使用原本实例化的app对象作为参数实例化migrate对...

阅读全文

Flask报错flask: jinja2.exceptions.TemplateNotFound error的解决方法

Flask使用render_template()方法来渲染模板,可以在这个函数中指定模块和传值到模块,在实际开发中,我们一般使用工厂函数来注册蓝图,同时也是在在工厂函数文件中获取app实例,然后直接注册到应用工厂中,看看我的flask应用目录如果我选择在入口文件实例化flask实例,那么是这样from flask import Flaskfrom flask_script import Manager,Server,prompt_boolfrom app.application...

阅读全文

python3获取系统当前进程和进程名的方法

每个程序都是一个进程或者多个进程,除去系统占用资源其他都被这些进程占用,比如我们的web服务,数据库等;很多情况下因为程序自身问题,会导致CPU运行100%,内存耗尽,磁盘写满,最后导致服务崩溃,我们可以通过psutil下面2个方法获取进程相关信息,还是使用之前学习过的psutil模块,之前的笔记可以通过https://sulao.cn/post/4.html查看,下面我们来看今天要学习的主要方法方法说明psutil.pids()获取进程ID(每个进程都有唯一ID)psutil.Process(pid)根据进程ID获取进程Process对象我们直接来看下...

阅读全文

python3工具模块functools的使用方法

functools工具函数在一般业务中用到的不太多,我们日常基本只用到三个函数,其中一个reduce之前有过一个笔记,详情可以查看https://sulao.cn/post/683.html,另外两个函数我们今天来介绍下使用方法我们先来看看functools中有哪些工具函数print(dir(functools))打印结果['RLock', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '_CacheInfo', ...

阅读全文

python3断言(assert)的简单使用介绍

assert断言语句和if分支有点类似,它用于对一个bool表达式进行断言,如果该bool表达式为True,该程序可以继续向下执行;否则程序会引发AssertionError错误声明布尔值必须为真的判定,布尔值为真,没有输出;如果布尔值为假,则会抛出异常,异常信息可以自己编写。反过来,就可以用来判断布尔值。由于执行速度非常快,可以看做是代码的文档,所以需要使用时,不要犹豫的使用它我们来看一个简单的例子#!/usr/bin/python3#coding:utf-8s_age = input("请...

阅读全文