- 博客(56)
- 问答 (1)
- 收藏
- 关注
原创 Django-auth组件
我们从为我们创建的auth组件内置的表开始看auth_user:用户表存储用户信息(登录admin后台)里面的字段分两类:用户基本信息(用户名,邮箱,密码等)和2张M2M表(用户+权限,用户+组)(与权限相关):权限表,存储所有表生成的增删改查的URL(每张表4个路由<——>路由的别名):用户表和权限表的多对多关系表,里面放user_id和:组表,里面放id和组名,和权限表有多对多的关系(对权限进行分组):用户表和组表的关系表,给用户分组: 组表和权限表的关系表,给权限分组。
2024-05-26 15:35:48
393
原创 Python线程
先来了解下进程和线程。类比:一个,至少有一个,一个车间中至少有一个,最终是工人在工作。一个,至少有一个,一个进程中至少有一个,最终是线程在工作。一个进程中可以有多个线程,同一个进程中的线程可以共享此进程中的资源。以前我们开发的程序中所有的行为都只能通过串行的形式运行,排队逐一执行,前面未完成,后面也无法继续。通过和都可以将串行的程序变为并发,对于上述示例来说就是同时下载两个视频,这样很短的时间内就可以下载完成。
2024-05-25 19:00:34
1004
原创 Python进程
passp1.start()passdef run():p.start()run()关于在Python中基于multiprocessiong模块操作的进程:arefork,【“拷贝”几乎所有资源】【支持文件对象/线程锁等传参】【unix】【任意位置开始】【快】spawn,【run参数传必备资源】【不支持文件对象/线程锁等传参】【unix、win】【main代码块开始】【慢】forkorforkserverforkserver。
2024-05-25 18:58:46
773
原创 Django中model中的抽象类
是一个标识,标识当前类只用于为其他类提供公共的字段(继承关系),并不会单独创建一张表。但是我们也可以对其默认配置修改,定义model类但是不在数据库中创建。后,Django就会在数据库中创建表。文件中定义model表并执行。这张表中,除了有自己定义的。字段,还有继承过来的。
2024-05-19 17:51:12
357
原创 Django的model中的Manager对象
但是有时候我们需要自定义一些操作来实现某种功能,比如。这时候我们就需自定义我们的Manager对象。时,会在表中创建2条数据。这样就实现了当我们执行。
2024-05-19 17:49:54
376
原创 Django自定义命令
我们知道,Django内部内置了很多命令,例如我们可以在python控制台中查看所有命令我们也可以自定义命令,让执行managementcommandscommandswilson.py在wilson.py文件中,我们需要写一个Command类,继承,并重写handle()方法当我们执行时,具体的操作就在handle()方法中在其父类中,有一个方法,可以支持我们解析命令后的参数(字典形式)
2024-05-19 17:49:12
565
原创 Django-signal组件
定义信号# 自定义信号注册回调触发信号cut_info_signal.send("触发了此信号")将某些动作都注册在一个信号中,一旦达到条件则触发信号(所有回调都执行)。信号的定义和注册我们一般不放在视图函数中,转而放在项目根目录的文件中(只要项目启动,该文件会自动加载)
2024-05-19 17:46:48
1376
原创 Python中的socket模块
我们先来看一个socket编程流程图这里的server端就是部署到服务器上的服务端,client端就是对应我们的PC软件浏览器,不过浏览器内部已经帮我们封装了socket。
2024-05-18 16:26:30
688
原创 type元类
但是这种方法很麻烦,我们可以采用type()函数来创建类我们可以在type()源码中查看其参数第一个参数是类名称第二个参数是其基类,也就是其父类,以元组方式传入(如果没有可以写为空元组)如果只有一个父类,元组中需要加一个逗号第三个参数是定义类中的属性或变量,以字典的形式传入(相当于类变量)也可以传入函数,将函数名作为字典的键,返回值作为字典的值。
2024-05-16 16:46:08
291
原创 Python中bisect模块
在Python中,如果我们想维持一个已排序的序列,可以使用内置的。函数(如果有两个相同数据,新数据添加到老数据右边),而。内部使用二分查找算法来添加数据。函数来实现二分查找算法。如果需要查找,可以使用。函数,默认调用的也是。
2024-05-12 18:07:37
227
原创 is和==的关系
原理是:当我们已有个变量是小整数或小段的字符串,再次建立相同的小整数或小字符串时,python不会重新开辟一个内存空间,而是用指针将这个变量指向我们已经创建的内存空间,这个属于python内部的优化机制。判断两个变量是不是指的是同一个内存地址,也就是通过。判断两个变量的值是不是相同。
2024-05-12 18:06:09
467
1
原创 Python中关于子类约束的开发规范
我们知道,在java和C#中有一种接口的类型,用来约束实现该接口的类,必须要定义接口中指定的方法。当然我们还有另外一种方法,就是通过python内置的abc模块来进行约束。而在python中,我们可以基于父类+子类+异常来仿照着实现这个功能。修饰器修饰的方法,就会报错,在控制台中也会有提示,让我们重写方法。当有子类继承并实例化对象时,如果子类没有实现其中被。方法,总程序源码的其他地方一定会使用。在这个实例中,我们通过bac模块中的。当我们重写方法后,程序执行就不会报错。,并在其中定义了2个方法,用修饰器。
2024-05-09 15:18:02
648
原创 python中type,object,class 三者关系
即使我们不将继承关系直接写在代码块中,python也会默认所有的类继承。类是所有类的父类(当然也包括。这个类所创建的一个个对象。这个类则是由它自身生成的。方法可以返回一个类的父类。
2024-05-04 15:22:20
215
原创 DRF筛选器(条件搜索)组件分析
urls.py)),)),# views.pyreturn 666""" 序列化:对请求的数据校验成功后,执行保存。"""
2024-05-03 15:29:32
939
原创 DRF分页组件使用逻辑分析
在查看数据列表的API中,如果 数据量 比较大,肯定不能把所有的数据都展示给用户,而需要通过分页展示。固定时分页组件会直接读取配置文件中的默认值,无论URL传递的参数名和值是啥都不会改变分页结果。根据URL路由动态自定义每页展示多少数据,需要用到类的继承。自定义时如果不传参数,依旧会读取默认的配置文件。通常被应用在例如滑动翻页技术。表示从第几条数据之后开始展示。固定每页几个数据,直接使用。表示当前页展示多少数据,表示每页展示多少数据。
2024-05-03 10:31:57
853
原创 DRF限流组件源码分析
限流,限制用户访问频率,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。开发过程中,如果某个接口不想让用户访问过于频繁,可以使用限流的机制。drf提供的限流类源码分析。基于drf提供的限流类。
2024-05-02 20:12:31
345
原创 DRF序列化器基本使用
在和Serializer中都可以自定义字段,并传入一些相关参数。"""部门表"""title = models.CharField(verbose_name="标题", max_length=32)number = models.CharField(verbose_name="代号", max_length=16, default=1)name = models.CharField(verbose_name="姓名", max_length=32)
2024-05-02 20:04:44
303
原创 DRF解析器源码分析
解析请求者发来的数据(JSON)使用获取请求体中的数据。这个的数据怎么来的呢?其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。drf默认的解析器三个JSONParserFormParser。
2024-05-02 20:02:42
567
原创 DRF返回值源码分析
在视图中定义方法(也可以用来判断是否异常)自定义异常配置文件在函数中做自定义1.2 异常返回自定义exception_handlerutils/handlers.pyutils/exceptions.pyviews.py1.3 drf返回值机制源码
2024-05-02 19:59:13
375
原创 Python中关于子类约束的开发规范
我们知道,在java和C#中有一种接口的类型,用来约束实现该接口的类,必须要定义接口中指定的方法。而在python中,我们可以基于父类+子类+异常来仿照着实现这个功能。方法,总程序源码的其他地方一定会使用。如果你在子类Foo中没有重写父类的。
2024-05-02 08:54:49
274
2
原创 DRF权限组件源码分析
在drf开发中,如果有些接口必须同时满足:A条件、B条件、C条件。有些接口只需要满足:A条件或B条件或C条件,此时就可以利用权限组件来编写这些条件。且关系,默认支持:A条件 且 B条件 且 C条件,同时满足。或关系,自定义(方便扩展)(不要改源码,在视图函数内定义。在drf中,默认优先去全局中读取,再去视图类中读取。权限组件相关配置同认证组件。我们可以将个别视图类的。
2024-05-01 17:59:22
669
原创 DRF认证组件分析
此时,就需要用到drf的全局配置**(认证组件的类不能放在视图view.py中,会因为导入APIView导致循环引用)。在开发API过程中,有些功能需要登录才能访问,有些无需登录。,认证组件中,如果是使用了多个认证类,会按照顺序逐一执行其中的。在drf中,默认优先去全局中读取,再去视图类中读取。除了可以定义为None,也可以定义为一个函数,如果想匿名用户也可以访问视图,可以在。是一个列表,可以同时应用多个认证组件。认证失败,抛出异常,返回错误信息。中配置,有两种配置方法。我们可以将个别视图类的。
2024-05-01 17:56:14
452
原创 DRF中的请求入口分析及request对象分析
drf中的request和django中的request不一样,实际上是对django的request参数进行再封装。也就是说,我可以通过request._request.xxx获取到原本django中的request对象里面的值,request.xxx获取到django中request对象里面的值的原理是:当访问不到时,会执行。这个函数将原来的Django中的request当作参数传入,返回的其实也是一个。方法,这个方法的作用是,如果我访问了类中一个不存在的变量时,就会执行这个。拿到路由中传递的参数。
2024-05-01 17:52:39
745
原创 Django-admin单例模式和懒加载
当我们实例化对象时,就会在内存开一个空间__new____init__name="张三"__new____init__单例模式的目的,就是让我们在创建类对象时,都使用第一次创建的类对象,而不是像上文那样每次使用时都创建一个对象python的执行顺序是1加载admin.py文件2实例化一个对象3当我们再次导入admin.py文件时,python不会重新加载,步骤4也就是一开始创建的admin对象,并不会重新创建一个新的对象。
2024-04-29 10:00:53
1846
原创 Django模板查找顺序
,找到了后续就不找了;如果没有,就顺着app的注册顺序进行查找。如果有定义,首先去这个目录下面查找(根目录下。首先看django项目的。
2024-04-29 09:39:46
712
原创 URL转义
URL转义符号url中转义结果转义码+URL 中+号表示空格%2B空格URL中的空格可以用+号或者编码%20/分隔目录和子目录%2F?分隔实际的URL和参数%3F#表示书签%23%指定特殊字符%25&URL 中指定的参数间的分隔符%26=URL 中指定参数的值%3D
2024-04-26 18:56:30
116
原创 Redis5.0.7安装(centos7)
否则,内存申请失败,并把错误返回给应用进程。意思是配置 /proc/sys/net/core/somaxconn的值是128,但redis.conf中配置的是511,但是。在一个高并发的环境下,128是远远不够的,所以我们要改大一些。如果你查看redis的日志,你会发现启动,日志中会出现一些警告,我们可以针对性的优化这些警告。redis建议我们关掉THP,还给出的具体的操作办法,注意必须使用root来操作,否则会失败。1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2024-04-23 08:38:33
844
原创 nginx1.24.0安装(centos7)
注意:nginx的解压目录和编译目录不能是同一文件夹。知道主要的目录作用,我们也就可以启动nginx了。即可启动,那还需要配置nginx的环境变量。此时,就可以在任意位置启动nginx了。如果想要在任意目录输入。
2024-04-23 08:34:33
660
1
空空如也
requests.exceptions.ConnectionError,这个怎么解决
2022-11-29
int对象不能使用append? 列表不是可以使用的吗?
2022-11-27
这个代码显示的时间总是快10秒,能不能看一下哪儿应该修改
2022-11-23
关于#File#的问题,如何解决?(语言-python)
2022-11-23
初学者学习《python从入门到实践15.2》产生错误,如何解决?
2022-11-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人