- 博客(42)
- 收藏
- 关注
原创 xpath规则
element.xpath 拿到的是一个element对象,在xpath规则中末尾加text()即可拿到文本内容,并且内容会放在一个列表中。用来查找某个特定的节点或者包含某个指定的值的节点。如果想取标签的属性则使用@属性名,例如@href。python中lxml使用。
2024-12-15 12:12:59
218
原创 正则表达式的元字符(有功能的符号)
PS:默认贪婪匹配:当我们的筛选条件存在多个匹配量的时候,以最大的匹配量进行显示。2:放在一个特定字符中会代表取反 例如:[^a-z] 代表取除了a-z之外的。叫通配符、万能通配符,匹配1个除了换行符\n以外的任意原子符号。有2个功能 1:取消贪婪匹配 2:匹配0-1次。: 不会提取括号中的内容。1:叫做开始边界,匹配一行开头的位置。例如 [a-z]匹配a到z中任何一个。$ 叫做结束边界,匹配一行结尾的位置。字符集:[] : 只能匹配一个。{} 中间填写重复的数量。{} :匹配指定次数。
2024-12-14 13:10:54
390
原创 改写form视图打印动作
根据网络请求可以看出该显示的打印动作是通过load_views的请求响应完成,也就是由模型下的load_views方法,只需要对其进行分析,重写即可。键print所对应的值resreport内容即为打印动作的返回值,因此只需要对这个里面拿到的值再次进行筛选即可,因此代码如下。PS:因为打开tree视图也会运行到该方法,所以需要对视图类型进行判断,也就是view_type需要等于from。查看load_views方法后,进一步锁定field_view_get方法,所以只需要对其重写即可。
2024-07-11 09:51:01
328
原创 odoo模型继承
模块化是Odoo一个非常重要的功能。一个模块通常定义一块业务内容,模块之间是可以交互的。所以从已有模块中去继承修改原有模块功能就很有必要。Odoo中,模型之间也定义了一套继承的逻辑,目前有三种继承方式:1、拓展继承2、原型继承3、委托继承通过_inherit、__name 、_inherits的不同用法来标识。
2024-07-10 16:12:26
940
原创 odoo视图继承
在模型时候,不对视图、菜单等进行修改,原视图和菜单等视图数据仍然可以使用,不需要重新构建form视图继承案例model:为对应模型inherit_id:为继承的视图,ref:为继承视图的id,PS:使用继承时,视图id前需要加模型.mode:视图继承的模式,视图继承有两种模式:扩展视图extension和基础视图primary。
2024-07-10 16:04:52
556
原创 odoo前端中widget属性
Odoo前端的字段中,widget属性用于定义字段在用户界面中的呈现方式。它允许您指定不同的小部件来定制字段的外观和功能。
2024-05-25 10:29:16
471
原创 odoo常用装饰器
数据校验修饰器。输入参数为模型字段名称。例如@api.constrains('name', 'description')绑定方法,用于字段值校验。
2024-05-07 16:34:00
345
原创 odoo部分ORM常用方法
记录创建方法。创建记录的orm函数。页面新建点击保存时触发调用。返回值为创建成功的记录集。需要配合装饰器api.model使用api.model:模型修饰器。使用该修饰器的方法,第一个参数self会去除记录集ids,只带有模型相关属性。vals_list中为传入的数据res为模型对象可以通过例如self.name来获取数据。
2024-05-07 16:30:19
410
原创 odoo基本模块的开发
editable:默认,选择列表视图的行打开对应的 表单视图。editable 属性让视图本身在原处可编辑。有效的值有 top 和 bottom,让新记录分别出现在列表的顶部或底部。default_order:重载视图的顺序,替换模型的默认顺序。值为一个字段的逗号分隔列表,后接 desc 来进行反向排序:create, edit, delete, duplicate, import, export_xlsx:允许通过设置相应属性为 false来在视图中禁用相应的动作attrs:基于记录值的动态属性。
2024-05-03 18:58:19
1181
原创 Docker-Compose容器编排
使用一个Dockerfile模板文件,可以很方便的定义一个适合自己使用的自定义镜像。但在工作中经常会碰到需要多个容器相互配合来完成某项任务或运行某个项目的情况。例如要运行一个django项目,除了django容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等,此时我们就需要使用到Docker-Compose了。Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
2024-04-03 01:42:49
1504
原创 Python发送邮件
ps:需要一个发送邮件的邮箱:QQ邮箱、网易邮箱等邮箱均可申请开启发送邮箱登录找到邮箱设置,找到SMTP设置163邮箱为例将SMTP打开生成STMP授权码(不要泄露)最后会生成一个密钥,将其保存下来。
2024-03-25 20:43:08
342
原创 分布式异步任务框架celery
celery只是用来调度任务的,但是它本身并不具备存储任务的功能,而调度任务的时候肯定是要把任务存起来,因此要使用celery的话,还需要搭配一些具有存储、访问功能的工具,比如:消息队列、Redis缓存、数据库等。如果延迟任务提交了,但是worker没启动,等延迟的时间,worker再启动,任务会立马启动。异步调用函数--》add--》执行5s钟--》执行完的数据,找个地方存起来。同步调用函数 --》add--》执行5s钟--》数据返回了。调用方--》去存的地方看一下--》任务有没有执行完。
2024-03-21 23:01:15
2212
1
原创 Dockerfile
docker中, 镜像是容器的基础,每次执行docker run的时候都会指定哪个基本镜像作为容器运行的基础。我们之前的docker的操作都是使用来自dockerhub提供的官方镜像,直接使用这些镜像只能满足一定的基本需求,当基础镜像无法满足我们的业务需求时,就得使用Dockerfile自己定制这些镜像了。ADD /opt/python3.8.12.tar.gz /opt/ # ADD的解压文件作用,将宿主机的/opt/下的python3.6.tar.gz解压到容器内的/opt/目录下。
2024-03-20 01:17:22
897
原创 DRF基于jwt实现后端登录认证
Django认证系统中提供的用户模型类及方法很方便,我们可以使用这个模型类,但是字段有些无法满足项目需求,如本项目中需要保存用户的手机号,需要给模型类添加额外的字段。Django提供了用户抽象模型类允许我们继承,扩展字段来使用Django认证系统的用户模型类。我们可以在apps中创建Django应用,并在配置文件中注册应用。在创建好的应用models.py中定义用户的用户模型类。
2024-02-28 21:24:08
1403
原创 anaconda的虚拟创建环境的基本命令
创建虚拟环境: conda create -n 虚拟环境名称 python=版本号。conda remove -n 虚拟环境名称 --all。在当前虚拟环境安装模块 conda install -c conda-forge 包名==版本号。在部署项目的服务器中安装项目使用的模块: pip install -r requirements.txt。使用虚拟环境: conda activate 虚拟环境名称。
2024-02-28 01:08:24
398
原创 DRF的Admin站点
django内置了一个强大的组件叫Admin,提供给网站管理员快速开发运营后台的管理站点。提醒:虽然django内置的运营站点功能齐全,但是在实际工作中如果要实现高定制性后台运营站点,很多公司都是自己另行自己从0开始搭建的或使用第三方组件对Admin进行增强美化。站点文档:注意:要使用Admin,必须先创建超级管理员。
2024-02-27 16:05:15
977
原创 DRF的认证、权限、限流等八大组件
如需自定义权限,需继承rest_framework.permissions.BasePermission父类,并实现以下两个任何一个方法或全部是否可以访问视图, view表示当前视图对象,request可以通过user属性获取当前用户是否可以访问模型对象, view表示当前视图, obj为模型数据对象,request可以通过user属性获取当前用户"""VVIP权限自定义权限,可用于全局配置,也可以用于局部配置""""""视图权限返回结果未True则表示允许访问视图类。
2024-02-27 02:12:45
1256
原创 Django Rest_Framework(DRF)
Django REST framework中的Serializer使用类来定义,必须直接或间接继承于rest_framework.serializers.Serializer。rest_framework.serializers 是drf提供给开发者调用的序列化器模块里面声明了所有的可用序列化器的基类,常用的有:Serializer 序列化器基类,drf中所有的序列化器类都必须继承于 Serializer。
2024-02-26 18:42:17
2278
原创 Redis
数据库中表与表的数据之间存在某种关联的内在关系,因为这种关系,所以我们称这种数据库为关系型数据库。典型:Mysql/MariaDB、postgreSQL、Oracle、SQLServer、DB2、Access、SQLlite3特点:全部使用SQL(结构化查询语言)进行数据库操作。都存在主外键关系,表,等等关系特征。大部分都支持各种关系型的数据库的特性:存储过程、触发器、视图、临时表、模式、函数。
2024-01-24 18:36:57
811
原创 gradio库的基本使用
Gradio(通过安装)是一个用于创建交互式界面的Python库。它允许你基于预训练模型、函数或任意代码块创建实时演示和部署模型的图形用户界面(GUI)。使用Gradio库,你可以轻松创建Web界面,用于输入数据、调用模型、显示结果,并为用户提供与模型交互的功能。它支持多种输入类型(如文本框、图片上传、滑块等)和输出展示方式(如图像展示、文本展示等)。你可以根据需要自定义界面的布局和样式。运行这段代码后,你将在浏览器中看到一个文本框,你可以在其中输入姓名,并在下方立即得到问候语的回复。可以通过。
2023-07-19 17:55:49
828
原创 Python闭包、装饰器
将数据封装在一个包(区域)内,使用时再去里面取(本质上闭包时基于函数嵌套搞出来一个中特殊嵌套)闭包的应用场景:1. 封装数据防止污染全局2.封装数据封到一个包里,使用的时候再取。装饰器
2023-05-18 17:48:41
73
原创 Python shutil
shutil.unpack_archive:解压文件。shutil.make_archive:压缩文件。shutil高级的文件、文件夹、压缩包 处理模块。shutil.move:文件或者文件夹重命名。shutil.copytree:拷贝文件夹。shutil.rmtree:删除文件夹。shutil.copy:拷贝文件。
2023-05-17 21:29:24
228
原创 Python os模块
os.path.abspath(__file__):获取当前脚本的绝对路径。os.path.dirname(路径):获取当前文件的上级目录。os.path.exists:判断路径是否存在。walk:查看目录下所有的文件(含子孙文件)os.path.isdir:是否时文件夹。os.remaove:删除文件或者文件夹。os模块为整理文件和目录最为常见的模块。os.path.join:路径的拼接。listdir:查看目录下所有的文件。os.makedirs:创建文件夹。
2023-05-17 17:15:45
70
原创 CSS定位
1.相对定位 相对定位:position:relativee;2.绝对定位定位:基于XXX定位,上下左右相对父级或者浏览器进行指定的偏移(上下左右) 绝对定位的话,它仍然在标准文档流中,原本的位置不1会被保留3.固定定位不管怎么样移动网页,该定位不会移动4.z-index图层 z-index:默认是0,最高无限~999
2022-08-20 19:27:09
89
原创 Java面对对象
对于描述复杂的事物,为了从宏观上1把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理面对过程思想(线性思维)步骤清晰简单,第一步、第二部...面对过程适合处理一些简单的问题面对对象的思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面对过程的思索面对对象适合处理复杂的问题,适合处理需要多少协作的问题面向对象编程(Object-Oriented
2022-08-10 15:52:15
55
原创 Java-GUI编程
1.简介GUL的核心技术:Swing AWT可以写出自己心中想要的一些小工具工作时候,也可以需要维护到swing界面,概率极小了解MVC架构,了解监听缺点:界面不美观需要jre环境2.AWT2.1AWT介绍包含了很多类和接口 GUL:图形用户编程元素:窗口、按钮、文本框2.2组件和容器2.2.1Framepackage 优快云;import java.awt.*;// GUI第一个界面public class GUITest1 { p
2022-08-10 15:50:18
176
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人