- 博客(138)
- 收藏
- 关注

原创 小小臭臭g的博客目录
面试题:1: Python程序员必须要知道的技术,值得收藏2: 兔子斐波那锲问题3: 青蛙跳台阶和验证幂数的方法PythonPython内置函数Django1: Python获取函数的参数的用途及实现方法(参数内省/Bob框架/inspect.signature)2: Django获取 请求方式/ 请求路径/ 一个或多个文件/3: ‘’%s’’ is an invalid key...
2020-01-08 17:50:19
381

原创 [干货]: Python程序员必须要知道的技术,值得收藏
注: 收集了一些python开发相关的技术名词(按英文字母排序), 并附上个人搜到的相关网站(仅供大家参考)aiohttp (爬虫框架)相关网站:https://blog.youkuaiyun.com/qq_31235811/article/details/93380242https://aiohttp.readthedocs.io/en/stable/...
2020-01-07 17:21:07
2383
4
原创 TypeError: can‘t pickle _thread.lock objects
can't pickle _thread.lock objects
2022-12-01 23:52:23
1788
原创 Python字符串转时间戳, 时间戳转datetime
import datetimeimport time# 时间戳转换为datetime类型 1653398780 ---> class 'datetime.datetime'def timestamp_to_datetime(time_stamp=time.time()): datetime_obj = datetime.datetime.fromtimestamp(time_stamp) return datetime_obj# 时间字符串转换为时间戳 "2022
2022-05-24 21:30:19
1432
原创 .py文件编译成.so文件, BUG: ImportError: dynamic module does not define module export function (PyInit_文件夹名)
出现这个问题的原因:你把(PyInit_文件夹名) 这个文件夹下面的 init.py文件也加密成so文件了. 只要把它还原成py文件即可
2021-08-30 10:09:25
747
原创 no python application found, check your startup logs for errors
django项目 uwsgi 报错1: 保证项目可以使用python manage.py runserver 启动2: uwsgi配置出现问题 wsgi-file路径等(百度一大堆)
2021-04-29 15:43:56
308
原创 Django中使用orm分组 (annotate) ,去重 (distinct)巨坑!!!!!!!!!!!!!
# annotate方法可以用来分组, 但是有一种情况会失效class Student(models.Model): name = models.CharField(max_length=20) age = models.IntegerField() hobbies = models.ManyToManyField("Hobby") class Meta: ordering = ("-id")# 根据name/age 等字段分组Student.objects.val
2021-04-27 16:11:44
2275
原创 django中使用orm根据某字段部分值进行排序
# 根据goods_name前两个字符排序query_goods_list = PurchaseGoods.objects.filter(goods_cate_id=cate_id, deleted=0).extra( select={'goods_name_seq': "left(goods_name,2)"}).order_by("goods_name_seq")print(query_goods_list.query)打印的sql语句SELECT (left(goods_name,2
2020-12-07 19:31:49
1738
原创 如何获取前端请求的真实IP/项目启动端口号
方法有两种1: 前端获取客户端IP,然后通过请求体等方式传给后端{“user_name”: “xiaoxiao”,“password”: “admin”,“ip”: “xx.xx.xx.xx”}2: 后端自行获取请求头中IP# 以django为例if request.META.get('HTTP_X_FORWARDED_FOR'): ip = request.META.get('HTTP_X_FORWARDED_FOR')else: ip = request.META.g
2020-11-29 19:07:27
5896
1
原创 django中os.environ[‘HOME‘] 的问题
今天在增加django项日志的时候出现问题, 发现错误是在指定log文件位置时:Logging = { ''' filename': os.environ['HOME'] + "/saas_error.log", # 日志文件的位置 ''' }问题原因: os.environ[‘HOME’] 环境变量中没有HOME这个key方法1:(项目的确是在linux下, 而且直接通过cmd进入python环境, os.environ[‘HOME’] 不会出问题)window下环境
2020-11-18 19:40:42
1372
原创 django中的orm和sql语句
如何查看orm执行的sql语句logo = SaasBusiness.objects.filter().latest("id")from django.db import connectionprint(connection.queries)orm执行原生sql语句logo = SaasBusiness.objects.raw("select * from tb_saas__business where id = %s", params=[1])# 返回值是一个RAWqueryset, 需要遍
2020-11-18 19:20:55
473
原创 django中修改models返回时间格式
# 正常返回logo = SaasBusiness.objects.filter().latest("id") # 返回时间字段为: "create": "2020-11-18T09:58:40.134867"# 1-修改返回字段logo = SaasBusiness.objects.extra( select={"ucreate": "DATE_FORMAT(ucreate, '%%Y-%%m-%%d %%H:%%i:%%s')"}).filter().latest("id")# 返
2020-11-18 19:00:36
1994
原创 django中的csrf / View/ APIView
今天在项目中遇到一个问题:接口继承View时, 出现CSRF, 403接口继承APIView时, 未出现CSRF异常, 究其原因, 发现是APIView中过滤了,CSRF验证如果不使用APIView, 怎么解决https://www.cnblogs.com/rgcLOVEyaya/p/RGC_LOVE_YAYA_692days_802_1.html...
2020-11-13 16:30:40
399
1
原创 Python单例模式创项目中的常量文件
# common_code.py 文件本身就是一个单例class CommonCode(object): def __init__(self): self.true_code = 100 self.logout_code = 101 self.no_permission = 301 self.error_code = 501 common_code = CommonCode()# utils.pyfrom commo
2020-11-13 09:53:00
274
原创 django 接收/响应 文件 ImageField/FileField
前端传参后端 接收/保存/返回1: 接收方式logo = request.data.get("logo")logo = request.FILES.get("logo")logo = request.FILES.getlist("logo") # 多个文件# 修改文件名,防止重复文件名覆盖之前的logo.name = datetime.datetime.now().__str__() + "__" + logo.name 2: 保存方式# 自行保存 logo = request
2020-11-08 23:15:53
1923
原创 django中使用celery
from celery import Celery# 为celery使用django配置文件进行设置import osif not os.getenv('DJANGO_SETTINGS_MODULE'): os.environ['DJANGO_SETTINGS_MODULE'] = 'Demo.settings'# 创建celery客户端实例,并起别名celery_app = Celery('Demo')# 加载celery配置# 要求括号内以celery_tasks开始c.
2020-11-04 17:06:13
199
1
原创 celery使用文档
官方文档(英文):https://docs.celeryproject.org/en/latest/index.html#简单的介绍和项目使用(中文):链接:https://pan.baidu.com/s/1XubS3ft9HbiT0DjoeBbEVA提取码:1mmf
2020-11-04 10:21:36
652
2
转载 CPU四核八线程和四核四线程的区别
四个人每人在用一只手工作 四个人每人在用两只手工作大概就是这个区别https://zhidao.baidu.com/question/871291752790331852.html
2020-10-30 10:01:24
5185
转载 Python进程与线程及GIL(全局解释器锁)
原文链接 https://blog.51cto.com/altboy/1923300进程与线程程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种一个程序在一个数据集上的一次动态执行过程就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。进程一般由程序、数据集、进程控制块三部分组成。有了进程为什么还要有线程呢?因为进程还是有缺陷的:进程只能在一个时间干一件事,如果想同时干两件事或多件事,进
2020-10-30 09:40:23
210
转载 Python读写超大文件
原文章链接1G内存读取10G文件# 1G内存读取10G的文件def chunked_file_reader(fp, block_size=1024 * 8): """生成器函数:分块读取文件内容""" while True: chunk = fp.read(block_size) # 当文件没有更多内容时,read 调用将会返回空字符串 '' if not chunk: break yield c
2020-10-29 16:38:44
1760
1
原创 python面试-3
TPS和QPSTPS:Transactions Per Second,意思是每秒事务数,具体事务的定义,都是人为的,可以一个接口、多个接口、一个业务流程等等。一个事务是指事务内第一个请求发送到接收到最后一个请求的响应的过程,以此来计算使用的时间和完成的事务个数。以单接口定义为事务为例,每个事务包括了如下3个过程: a.向服务器发请求 b.服务器自己的内部处理(包含应用服务器、数据库服务器等) c.服务器返回结果给客户端 如果每秒能够完成N次这三个过程,tps就是N;如果多个
2020-10-29 16:35:14
152
原创 Python中的json和pickle模块序列化
json 序列化主要是用于前后端交互 dict/list/int/str ---> json json.dump() 再次追加的时候容易出问题pickle 序列化,主要是用于保存文件,pickle 单词本身的意思就是腌制(是把东西腌起来保存成文件,要用的时候读出来洗洗还能用) 优势: 所有的python对象, 变成一个二进制字节流,存储到硬盘(文件中), 用的时候再取出来 缺点: pickle序列化后的数据,可读性差,人一般无法识别。 详细说明
2020-10-28 16:22:19
185
原创 json序列化和反序列化
json序列化: Python中的dict-->json字符串json反序列化: json字符串-->Python中的例如:import jsondemo_dict = {"name": "小小臭臭g", "age": "20", "number": 20200908}# 序列化json_str = json.dumps(demo_dict)# json_str = json.dumps(demo_dict, ensure_ascii=False) # 汉字是否u
2020-10-28 14:11:17
322
原创 mysql数据库面试题(工作/成功率)
CREATE TABLE `t_jobs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(255) COLLATE utf8_bin DEFAULT NULL, `job_type` int(11) DEFAULT NULL, `status` int(11) DEFAULT NULL, `begin_time` datetime DEFAULT NULL, `end_time` datetime DEFAUL
2020-10-15 00:05:46
261
原创 python面试-2
1 : 计算1-10000的和:print(sum(x for x in range(1, 10001)))2: 递归方式求和1-10000# 递归深度默认最大是1000,...默认时, n最大是998, 否则会报错...# 调整上限的办法 : https://zhuanlan.zhihu.com/p/90730600# import sys# sys.setrecursionlimit(设置上限值)def func(n): if n == 1: return 1
2020-10-14 21:29:44
273
1
原创 python面试-1
1. django中的mvt2.http的幂等性和安全性https://blog.youkuaiyun.com/qq_27376871/article/details/78222961个人理解: https://blog.youkuaiyun.com/qq_42327755/article/details/1090562133. url中get和post的区别 GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST,浏览器先发送header,服务器响应
2020-10-13 22:13:07
194
原创 HTTP各种请求方法的的幂等性和安全性
幂等性和安全性是http请求方法的特性, 比如 get请求方法是具有安全性的安全性(此次请求不会修改后台): 仅指该方法的多次调用不会产生副作用,不涉及传统意义上的“安全”,这里的副作用是指资源状态。即,安全的方法不会修改资源状态,尽管多次调用的返回值可能不一样(被其他非安全方法修改过)。幂等性(多次请求一个url,返回值不变): 是指该方法多次调用返回的效果(形式)一致,客户端可以重复调用并且期望同样的结果。一次调用和多次调用产生的效果是一致的,都是对一个变量进行赋值。
2020-10-13 19:05:26
2909
原创 任意1个字符串, 一共有多少种排列组合
任意1个字符串, 一共有多少种排列组合例如: “123” 排列组合就是: 123 132 231 213 321 312 # 6种import itertoolsclass Solution(): # 方法1:一行代码 def func1(self, random_str): ret_list = sorted(list(set(map("".join, itertools.permutations(random_str))))) pr
2020-10-12 16:02:53
1349
原创 Mysql面试题- 学生,课程,分数
课程表CREATE TABLE `course` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `teacher_id` int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `course` VALUES ('1', '语文', '1');INSERT INTO `course` VALUES ('2', '数学', '2
2020-10-11 00:48:24
268
1
原创 Mysql面试题- 学生,课程,分数
#课程表,学生表,学生成绩表 (建表数据sql语句)1:查询 id=1的课程比id =2的课程成绩高的学生和学号2:查询平均成绩大于60分的同学学号和平均成绩3:查询所有同学的学号,姓名,选课数,总成绩4:查询 没有学全所有课程的同学的学号,姓名.# 第一题SELECT ta.student_noFROM score ta , score tb WHERE ta.student_no = tb.student_noa...
2020-10-11 00:47:45
399
转载 Redis是多线程还是单线程, 5中IO模型
https://blog.youkuaiyun.com/bird73/article/details/79792548
2020-10-10 16:01:14
211
转载 Redis中两种持久化机制RDB和AOF
前提: 随着redis越来越流行,使用者不在仅仅满足其只是一个内存数据库,同时也期望其能将内存数据落磁盘, 这样重启服务就不会导致缓存数据丢失了 Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。模式说明优点缺点RDB定期将redis当前内存数据快照备份到硬盘redis重启时恢复速度快由于备份不宜频繁,会导致系统异常宕机时,redis大量数据丢失AOF
2020-10-10 15:02:31
333
转载 Mysql的索引
1-索引是什么?MySQL官方对索引的定义为: 索引(Index)是帮助MySQL高效获取数据的数据结构. 理解为: 快速查找排好序的一种数据结构。2-为什么用索引(优点)?可以大大提高MySQL的检索速度。所有的MySql列类型(字段类型)都可以被索引,也就是可以给任意字段设置索引缺点:1、创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加2、索引也需要占空间,我们知道数据表中的数据也会有最大上线设置的,如果我们有大量的索引,索引文件可能会比数据文件更快达到上线值
2020-10-10 00:02:27
97
转载 mysql中的死锁
1-死锁是什么?死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等的进程称为死锁进程....
2020-10-09 14:47:55
241
转载 悲观锁和乐观锁
1-乐观锁:乐观锁并不是真正的锁,只是更新数据的时候多加一层判断例1: 更新的时候判断此时库存是否和之前查询的库存一样, 如果一样则表示没人修改,可以进行更新; 否则表示有人抢过该资源,不再进行更新 update tb_sku set stock=2 where id=1 and stock=7; SKU.objects.filter(id=1, stock=7).update(stock=2)例2 也可以在表中加一个version字段或者是时间戳字段, 每做一次
2020-09-30 18:24:42
98
转载 Mysql的锁
1-概念DDL(操作字段): 操作数据库、表、列等(这些对象进行操作),使用的关键字:CREATE、 ALTER、 DROP。 DML(操作数据) 是对表中的数据进行增、删、改的操作。不要与DDL混淆了。 INSERT 、UPDATE、 DELETE。两段锁数据库遵循的是两段锁协议,将事务分成两个阶段,加锁阶段和解锁阶段(所以叫两段锁)加锁阶段: 在该阶段可以进行加锁操作。 在对任何数据进行读操作之前要申请并获得S锁(共享锁,其它事务可以继续加共享锁,但不能加排它锁),
2020-09-29 18:18:54
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人