python 对列表内的字典排序 python 对列表内的字典排序升序排序:alldate = [{'学号': 2.0, '姓名': '李四', '科目': '数学', '成绩': 77.0}, {'学号': 3.0, '姓名': '王五', '科目': '数学', '成绩': 78.0}, {'学号': 1.0, '姓名': '张三', '科目': '数学', '成绩': 90.0}, {'学号': 3.0, '姓名': '王五', '科目': '英语', '成绩':
golang并发安全和锁 golang并发安全和锁互斥锁:package mainimport ( "fmt" "sync")var ( x int64 wg sync.WaitGroup lock sync.Mutex)func add() { for i := 0; i < 5000000; i++ { lock.Lock() // 加锁 x = x + 1 lock.Unlock() // 解锁 } wg.Done()}func main() { wg.Add(2)
python基本数据结构 栈:class Stack: def __init__(self): self.items = [] def isEmpty(self): return self.items == [] def push(self, item): self.items.append(item) def pop(self): self.items.pop()
gin集成Swagger-UI gin 中间件使用 Swagger 2.0 自动生成 RESTFUL API 文档。1. 安装Swagger使用以下命令下载Swag for Go:go get -u github.com/swaggo/swag/cmd/swag在 Go 项目根路径运行Swag , Swag将解析注释并生成所需的文件和文件夹。swag init生成目录如下:.├── docs│ ├── docs.go│ ├── swagger.json│ └── swagger.yaml├── g
golang strings常用函数 package mainimport ( "fmt" "strings")func main() { s1 := " aBc" s2 := "100a" s3 := s1 + s2 fmt.Println(s3) fmt.Println(strings.HasPrefix(s3, "a")) //判断前缀 fmt.Println(strings.HasSuffix(s3, "0")) //判断后缀 fmt.Println(s
记录一个Markdown编写的接口文档模版 接口名称1) 请求地址https://apis.cnblogs.com/user/info?a=xx&b=xx2) 调用方式:HTTP post3) 接口描述:接口描述详情4) 请求参数:GET参数:字段名称字段说明类型必填备注astrY-bstrY-5) 请求返回结果:{"errNum": 10001,"errMsg": "Param Error"}6) 请求返回结果参数说明:字段名称字段说明类
部署django-celery 安装包# pip安装必选 Django==3.2 celery==5.0.5 redis==3.5.3 # 可选,windows下运行celery 4以后版本,还需额外安装eventlet库 eventlet # 推荐安装, 需要设置定时或周期任务时安装,推荐安装 django-celery-beat==2.2.0 # 视情况需要,需要存储任务结果时安装,视情况需要 django-celery-results==2.0.1 # 视情况需要,需要监控celery运行任务
记录python httpx库的基本使用 详细注释记录在代码中。。。# 文档地址https://www.python-httpx.org/import httpx # pip install httpx # pip install httpx[http2]import asyncioimport time# headers = {'user-agent': 'my-app/1.0.0'}# params = {'key1': 'value1', 'key2': 'value2'}# cookies = {'color': 'gre
记录一个JWT验证装饰器 记录一个JWT验证装饰器,可用于做接口验证。用到的包:import timeimport jwtimport uuidimport functools用到的加密解密方法:class Token: @classmethod def encrpyt_token(cls, username, exp_time=None, secret=None): """ jwt加密 :param username: :param e
python 懒加载 python 懒加载getattr() 函数用于返回一个对象属性值。减少内存消耗 try: namespace_ = convert_upper_case_to_snake_case(service_name) + '_service' namespace_module = import_module(f"app.services.{namespace_}") class_object = getattr(namespace_module, servic
Django自定义Some of Simple JWT’s behavior # Django project settings.pyfrom datetime import timedelta...SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5), 'REFRESH_TOKEN_LIFETIME': timedelta(days=1), 'ROTATE_REFRESH_TOKENS': False, 'BLACKLIST_AFTER_ROTATION': False,
Python强类型笔记(一) 一个简单的例子:def speak(name,age): print(name,age)speak("张三","18")可以知道,speak函数的name参数,接收的一定是个字符串,并且希望它以后接收的也一直是字符串,传统的写法如上。现在有个很简单的需求,我想把name接收的参数都转成大写,我们都知道字符串有upper方法。print("stark".upper())但是当我们敲“.”符号的时候,有时候可能并不会出现自动提示,但是name确实是字符串。我们将代码稍微改一下:def
Flask-RESTX笔记(二)之一个完整的flask-restx实例 一个完整的flask-restx实例from flask import Flaskfrom flask_restx import Api, Resource, fieldsfrom werkzeug.middleware.proxy_fix import ProxyFixapp = Flask(__name__)app.wsgi_app = ProxyFix(app.wsgi_app)api = Api(app, version='1.0', title='TodoMVC API',
Flask-RESTX笔记(一) 初始化与其他所有扩展一样,您可以使用应用程序对象对其进行初始化:from flask import Flaskfrom flask_restx import Apiapp = Flask(__name__)api = Api(app)或者懒惰地使用工厂模式:from flask import Flaskfrom flask_restx import Apiapi = Api()app = Flask(__name__)api.init_app(app)一个最小的 API一
python消息队列(生产者消费者模型) from multiprocessing import Queuefrom threading import Threadimport time#创建生产者def producer(q, n): print("开始生产") for i in range(n-99, n+1): print("生产{}".format(i)) q.put(i) #发消息 if i == 80 or i == 180:
Linux crontab 命令 Linux crontab 命令service crond start //启动服务service crond stop //关闭服务service crond restart //重启服务crond -e //编辑20 03 * * * python /home/test.py > /home/test.log
nginx总结 nginx总结nginx常用命令启动nginx-s quit是正常停止。nginx -s quit-s stop是强制停止nginx -s stop启动状态下重新加载配置文件nginx -s reload查看nginx进程ps aux|grep nginx关于Gunicorn 的终止进程显示主进程pidpstree -ap | grep gunicorn杀掉这个主进程就okkill -9 查询出的pid...