自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

~

  • 博客(43)
  • 收藏
  • 关注

原创 git 补丁使用

如果补丁应用成功,Git 将自动将更改应用到你的代码中。如果有冲突或其他问题,Git 会提示错误信息,并尝试合并更改。在 Git 中,你可以使用 git diff 和 git apply 命令来生成和应用补丁(patch)。

2023-07-20 23:18:39 1026

原创 浏览器中文编码解码利用python实现

import urllib.parsexx = "%E8%81%AA%E6%98%8E%E7%9A%84%E5%A4%A7%E5%98%B4%E8%8A%B1"print(urllib.parse.unquote(xx)) # 解码s = input("请输入中文:")result = urllib.parse.quote(s) # 转为 url 编码print(result)

2022-05-20 10:56:31 1150

原创 bootstrap 传值

利用 data- 进行传值,获取该值的时候,使用$("#id名称").data('data-后面的内容') <table class="table table-hover table-bordered"> <tr class="text-center"> <th class="text-center">数据库中名称</th> <th class="tex

2022-03-04 09:31:32 890 1

原创 JWT 简介

Json web token(JWT),是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准,JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源三部分组成第一部分:算法、token类别格式为字典-元数据 ,格式如下,该部分数据需要转成json串并用base64转码{'alg':'HS256','typ':'JWT'}# alg 代表要使用的算法# typ 标识该token的类别,此处必须为大写的JWT第二部分:具体数据格式为字典

2022-02-14 11:43:24 466

原创 Django 数据库时间UTC格式改为Asia/Shanghai

修改settings.pyTIME_ZONE = 'Asia/Shanghai'# 关闭时区功能后,数据库存储时间时,按照TIME_ZONE时区进行存储,若设置为True,数据库中存储的时间为UTC,但是在读取时间的时候Django会根据settings.py进行转换USE_TZ = False...

2022-02-11 14:24:24 4052

原创 Django RESTful 设计风格

全称:Representational State Transfer资源网络上的一个实体,或者说是网络上的一个具体信息,并且每个资源都有独一无二的URI与之相对应;获取资源-直接访问URI即可表现层如何去表现资源-即资源的表现形式;如 HTML、XML、JPG、json等状态转化访问一个URI即发生了一次客户端和服务器端的交互;此次交互将会涉及到数据和状态的变化客户端需要通过某些方式触发具体的变化-HTTP method 如GET,POST,PUT,PATCH,DELETE等特征1.

2022-02-11 10:06:26 550

原创 Django中间件

中间件是Django请求/响应处理的钩子框架,它是轻量级的、低级的“插件”系统,用于全局改变Django的输入或输出中间件以类的形式体现每个中间件负责做一些特定的功能。例如,Django包含一个中间件组件AuthenticationMiddleware,它使用会话将用户与请求关联起来中间件类必须继承自django.utils.deprecation.MiddlewareMixin类中间件类必须实现下列五个方法中的一个或者多个process_request(self,request)执.

2022-02-10 16:35:23 229

原创 Django数据库缓存

使用场景:经常做查询,对实时数据不作要求,数据量大等场景内存缓存是缓存手段当中最快的,但是有内存溢出漏洞文件缓存是缓存当中性价比最高,安全有漏洞数据库缓存,再创建一个表存放经常查询的数据,设计难度比较高在settings中配置# 数据库缓存CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', # 缓存后台使用的引擎 'LOCATION': '

2022-02-10 10:27:25 2480

原创 Django中关于模板的查找顺序

如果settings.py中的TEMPLATES里面的参数DIRS设置为如下,查找优先顺序为优先去项目根目录下的templates中寻找根目录下的templates未找到,根据app的注册顺序,逐一去app下的templates目录中找import osTEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(.

2022-02-07 17:08:54 1307

原创 Django解决跨域问题

利用python第三方库解决跨域问题pip3 install django-cors-headers设置seetings.pyINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib

2022-01-25 15:44:45 1503

原创 Django自定义过滤器

需求:Django框架中,后端传入前端数据量太大,展示不下,需要只展示前几个字符串解决方案:自定义过滤器返回前几个字符串在app目录下新建templatetags目录,在该目录中新建__init__.py以及myFilters.py,myFilters.py中定义过滤器返回前10个字符串from django import templateregister = template.Library()@register.filterdef InterceptString(post_resu

2021-12-31 15:26:14 534

原创 fastapi获取访客真实ip

from fastapi import FastAPIfrom starlette.requests import Requestapp = FastAPI()@app.get('/')def index(request: Request): client_host_ip = request.client.host return {"ip": client_host_ip}

2021-12-31 10:02:45 3922

原创 Django初始化数据库

部分业务场景在启动Django框架的时候需要在数据库中生成指定账号,可以使用post_migrate信号实现初始化数据库操作python3 manage.py migrate–调用migrate之后,django会发起post_migrate信号,数据库基础数据的初始化可以写在里面具体操作:在app目录的app.py中增加如下from django.apps import AppConfigfrom django.db.models.signals import post_migrate

2021-12-23 10:50:13 2972

原创 Fastapi 日常踩坑

1. 报错:fastapi.exceptions.FastAPIError: Invalid args for response field! Hint: check that extra={} is a valid pydantic field type报错原因:代码中查询参数类型未规定,检查代码修改为 q: str=Query(None)问题解决

2021-12-13 11:28:34 2684

原创 nginx中内置的全局变量

$args 这个变量等于请求行中的参数,同$query_string$content_length 请求头中的Content-length字段。$content_type 请求头中的Content-Type字段。$document_root 当前请求在root指令中指定的值。$host 请求主机头字段,否则为服务器名称。$http_user_agent 客户端agent信息$http_cookie

2021-12-10 10:39:47 1898

原创 Ubuntu20.04安装go

下载go压缩包 https://go.dev/dl/使用root 或者其他sudo用户安装,下载并且解压二进制文件到/user/localwget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local调整环境变量切到普通用户 vim ~/.profileexport PATH=$PATH:/usr/local/go/binsource ~/.profile..

2021-12-09 17:20:24 895

原创 fastapi服务修改为https

uvicorn 默认是httpubuntu系统中安装mkcert# 安装相关依赖sudo apt-get updatesudo apt install wget libnss3-tools# 下载mkcert可执行文件wget -O mkcert https://github.com/FiloSottile/mkcert/releases/download/v1.3.0/mkcert-v1.3.0-linux-amd64# 将可执行文件赋权并放至/usr/local/bin下chmod

2021-12-09 17:18:06 4897

转载 django http转换为https

django 默认的runserver使用的是http协议pip3 install django-extensionspip3 install django-werkzeug-debugger-runserverpip3 install pyOpenSSL配置settings文件 在INSTALLED_APPS下添加‘werkzeug_debugger_runserver’,‘django_extensions’,在终端使用命令运行python3 manage.py runs.

2021-12-08 14:26:04 304

原创 Django 运行时出现 RecursionError: maximum recursion depth exceeded

新建Django任务时,直接将主目录下的urls拷贝到app里面没有删掉部分代码,特此记录一下

2021-11-28 10:10:54 1614 1

原创 解决容器跟宿主机时间不一致问题

docker cp /etc/localtime [容器ID或者name]:/etc/localtime

2021-11-25 11:07:16 470

原创 shell小知识

拼接字符串并执行a="ps -ef |"b="grep xxx"eval ${a} ${b} # 相当于执行了 ps -ef | grep xxx去掉字符串最后一个字符str="abcdefg"echo ${str%?} # --> abcdef

2021-11-25 11:04:57 104

原创 shell中创建数组并循环读取

#!/bin/bash# 定义一个数组array=()# for 循环往自定义数组增加数据for((i=1;i<=5;i++))do # 往数组里面加数据 array[${i}]=${i}done# 遍历数组for num in ${array[*]}do echo $numdone

2021-11-24 15:08:50 1548

原创 Django实现简单页面弹框

使用django自带的messages首先确保setting.py文件中APP注册部分存在这个库在项目中导入使用前端页面代码效果展示参考原文

2021-11-19 11:42:14 3542

原创 python运算符 >>、<<

位移运算符x << y # 等同于 x*(2**y)x >> y. # 等同于 x/(2**y)"""48 >> 248的二进制值为"110000",将48二进制整体向右移动2位变成"001100",计算得到的值为2**3+2**2--> 12"""

2021-11-11 11:34:03 1285

原创 ubuntu20.04 redis安装

安装sudo apt install redis-server检查服务状态sudo systemctl status redis-server# 查看redis进程ps -ef | grep redisredis配置文件/etc/redis/redis.conf修改配置文件之后需要重启redis使配置生效

2021-11-09 15:35:07 895

原创 解决一个镜像ID同时拥有多个tag的问题

docker rmi <REPOSITORY:TAG>

2021-11-08 09:34:45 892

原创 python中的dict与json、yaml相互转换

dict to jsonimport json# json.dumps() 是把python对象转换成json对象的一个过程,生成的是字符串。 s理解为 str# json.dump() 是把python对象转换成json对象生成一个fp的文件流,和文件相关。dict_1 = {'a': 1, 'b': 2} # {'a': 1, 'b': 2} type(dict_1) --> <class 'dict'>json_1 = json.dumps(dict_1) # {"a

2021-11-05 17:04:48 1234 1

原创 解决Django设置debug=False静态文件获取不到的问题

debug设置为False之后,static目录中的静态文件找不到,plugins目录是有的解决办法:1.修改settings.py文件STATIC_URL = '/static/'STATIC_ROOT = 'static' ## 新增行STATICFILES_DIRS = (os.path.join(BASE_DIR, '/static/'),)2.修改url.py文件from django.views import static ##新增from django.conf impor

2021-09-24 14:42:49 317

原创 uvicorn 命令行启动

开启uvicorn 可以使用两种方式:一、run方式uvicorn.run()二、命令行方式uvicorn xxx:app --host=‘0.0.0.0’ --port=‘9999’ --reload=Trueuvicorn/main.py中使用@click.option装饰器方便地实现命令行接口通讯部分参数简单解释:–或-:参数前缀is_flag:如果为真, 那么参数只能是True或者False, 命令行中出现了就是True,没有出现就是Falsetype:类型default:设

2021-09-14 11:51:51 10327

原创 FastAPI 使用

无论是否使用async,FastAPI都会使用异步的方式处理,如果定义了async函数,函数内部使用的是同步的调用(不使用await),函数执行过程变成串行

2021-09-08 11:11:18 1156

原创 postgres镜像使用

拉取docker镜像并拉起docker pull postgres:12docker run --name postgresql --restart always -p 5432:5432 -e POSTGRES_PASSWORD=123456 -d postgres:12进入docker并操作数据库# 进入dockerdocker exec -ti `docker ps | grep postgres | awk '{print$1}'` /bin/bash# 登陆postgres数据库p

2021-09-08 11:05:34 738

原创 redis镜像操作

进入redis镜像并开启redis服务docker exec -ti 4da0128b3d32 redis-cli查看redis占用内存信息127.0.0.1:6379> info# Memory 内存占用信息查看redis内所有的key127.0.0.1:6379> keys * 查看redis内单条数据所占内存127.0.0.1:6379> MEMORY USAGE 27b45633-870e-4897-931c-b988a9ceedfa...

2021-09-02 17:16:02 468

原创 uvicorn reload-dir参数

# 目录结构.├── A│ └── a.file├── B│ └── b.file├── C│ └── c.file└── start.py需求:使用fastapi框架起服务会用到uvicorn,现在有一个需求只想a.file内代码变动会重新加载,b.file或者c.file内文件内容修改不重新加载解决办法:uvicorn start:app --reload --reload-dir A详情可以参照uvicorn官方文档...

2021-08-26 14:10:27 1738

原创 python操作excel

from openpyxl import load_workbookwb = load_workbook(config_path)ws = wb['Sheet1'] # 获取sheet页名为Sheet1的标签页ws['A'] # A列的所有元素 为元组对象# 遍历元素for item in ws['A']: value = item.value #A列的每个值 rowNum = item.row #所在行数 ws.delete_rows(item.row) #删除第几行ws.app

2021-08-20 17:25:41 107

原创 前端相关知识

1.bootstrap table文字居中 <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/css/bootstrap.css"> <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1-dist/js/bootstrap.js"> <style> <!-- 添加如下-

2021-08-19 17:05:32 220

原创 centos6 中 pip3安装No matching distribution found for xxx 问题

问题描述利用docker安装的pip3(版本3.6)安装python模块会出现No matching distribution found for xxx的ERROR,在这之前还有一段WARNINGpip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.解决方案修改python安装包源文件进入python安装包的路径...

2021-08-11 16:52:37 2684

原创 ubuntu安装gitea及相关操作

1.4.0版本:wget -O gitea https://dl.gitea.io/gitea/1.4.0/gitea-1.4.0-linux-amd64https://blog.csdn.net/slimmm/article/details/108992087

2021-08-06 14:33:19 1063

原创 U盘安装ubuntu20.04并优化

U盘作启动盘安装ubuntu20.04ubuntu20.04桌面版官方镜像下载地址:http://releases.ubuntu.com/20.04/将下载完的镜像放至U盘中,并解压至U盘。重启电脑,在进入到开机启动页面的时候,进入到bios界面,选择U盘进入,依次安装,详细安装步骤安装完Ubuntu后,需要更换一下国内镜像源编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份):deb http://mirrors.aliyun.com/ubunt

2021-07-13 10:05:16 1026

原创 django celery 使用

阻塞高风险 分布式任务调度系统Celery 是一个简单,灵活且可靠的,处理大量消息的分布式系统,他是一个专注于实时处理的任务队列,同时也支持任务调度broker 消息传输的中间件,生产者一旦有消息发送,将发送至broker (rq redis)backend 用于存储消息/任务结果,如果需要跟踪和查询任务状态,则需要添加相关配置worker 工作者 消费/执行broker中消息/任务的进程 —》持续盯着broker中是否有活,会自动拿到任务celery 实时反馈不行 无法确定消费者干活的时间#

2021-07-06 10:57:07 478 1

转载 Supervisor管理服务,实现异常死亡进程自动重启

一.Supervisor基础介绍1.supervisor是什么supervisor是用python语言开发的一个进程管理工具,官方介绍说: Supervisor: A Process Control System,Supervisor是一个客户端/服务器系统,允许其用户监视和控制类UNIX操作系统上的许多进程1.supervisord服务器主进程名为supervisord。它负责在自己的调用中启动子程序,响应来自客户端的命令,重新启动崩溃或退出的子进程,记录其子进程stdout和stderr 输出,

2021-07-06 09:52:18 2131

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除