- 博客(40)
- 收藏
- 关注
原创 一条命令配置移动端(Android / iOS)自动化环境
建议:创建虚拟环境并激活虚拟环境后,然后使用下面命令安装。环境隔离可避免与系统环境已有其他项目依赖包冲突。建议:在官网下载安全版本,比如当前(2025.3.31)最新的是3.11。完成以上两个配置(一条命令 + adb)就可以开始使用了。
2025-03-31 17:27:01
230
原创 Lean4安装配置
然后使用以下命令安装上面查看的版本(但是这里输入版本号是从数字开始,比如查看到的是:leanprover/lean4:v4.8.0-rc2,输入的是4.8.0-rc2)然后再继续输入以下命令编译安装依赖,时间有点久。大概15-25分钟左右。然后继续在这个目录中输入。解压放到用户目录下的。搜索lean找到下面这个。使用以下命令设置工具链。查看当前lean设置。
2025-02-18 20:55:33
161
原创 解决Github打不开或者访问慢的问题
以下是我查询好的,可以复制加到hosts。如果依旧访问慢,可以自行查询最新的IP。查询以下三个域名的IP,然后把IP复制过来将域名指向IP。
2024-11-27 10:55:43
416
转载 Dunder 方法 | Pydon‘t
Python 是一种具有丰富内置函数和运算符的语言,它们可以很好地与内置类型配合使用。例如,运算符可以3.3但是,是什么定义了数字(整数和浮点数)的加法和列表、元组、字符串的连接?如果我想处理其他类型怎么办?我可以这样做吗?简短的回答是“是”,这通过dunder 方法实现,这是本篇 Pydon’t 中的研究对象。在本篇 Pydon’t 中,你将了解什么是 dunder 方法;为什么它们被这样称呼;了解各种有用的 dunder 方法;了解哪些 dunder 方法与哪些内置方法相对应;
2024-08-05 23:26:11
119
原创 pytest最常用插件
pytest-html插件用于生成HTML格式的测试报告,使得测试结果更加直观和易于分享。该报告包含详细的测试结果、失败截图、测试耗时等信息。
2024-08-05 21:54:31
311
原创 在Linux(CentOS、Ubuntu等等)中安装Erlang和Elixir
在Linux(CentOS、Ubuntu等等)中安装Erlang和Elixir
2024-07-19 09:39:55
462
原创 用 Python 撸一个 Web 服务器-第9章:项目总结
本教程带大家一起实现了一个 Todo List 程序,包含基础的增删改查功能,和用户登录认证。这也是 Web 开发中最常见的需求。我画了一张思维导图,帮助你从宏观的角度来概览 Todo List 程序,加深你对 Web 开发的理解。Todo List项目整体思路参考MVC设计模式。有意设计utils/目录专门用来存储一些工具方法,这些工具方法通常比较独立,尽量不从外部模块导入依赖,其他模块需要某个工具方法时从utils/目录下导入即可使用,这样就避免了循环导入的问题。
2024-06-07 10:32:14
238
原创 用 Python 撸一个 Web 服务器-第8章:用户管理
而对于 todo 的删除、修改、查询操作,只有 todo 的创建者才有权限,所以不仅要验证用户是否登录,还要验证操作的 todo 是否属于当前登录用户。我们当然可以将验证操作都放到视图函数中,但仔细观察,你会发现对 todo 的所有操作有一个共同点,都需要验证用户是否登录。方法传入原始密码,得到的是加密后的字符串,可以将其存储到文件中,这个字符串无法解密。在进行密码验证时,并不需要对文件中存储的加密密码进行解密,只要对原始密码使用同样的方法进行加密,然后比较两个加密后的字符串是否相等即可。
2024-06-07 10:30:41
390
原创 用 Python 撸一个 Web 服务器-第7章:重构——更好的组织代码
通过前几章的学习,我们完成了 Todo List 程序的 todo 管理部分,实现了对 todo 的增、删、改、查基本操作,这也是几乎所有 Web 程序都具备的功能。我们当然可以按照目前的思路继续来实现用户管理部分,在models.py中编写用户相关的模型,在templates/目录下新建用户相关 HTML,在中编写用户相关的视图函数。但是,随着新功能的加入,把不同功能的代码都写在相同的文件中必然会引起代码的混乱。为实现易维护、易扩展的代码,我们需要对项目的目录结构进行重构。
2024-06-07 10:29:49
560
原创 用 Python 撸一个 Web 服务器-第6章:完善 Todo List 应用
这一章,我们来完成 todo 管理功能的剩余部分:新增、修改和删除功能。
2024-06-07 10:28:38
857
原创 用 Python 撸一个 Web 服务器-第5章:处理静态资源
视图函数就能够处理多种类型的静态文件,而不需给 CSS、JavaScript 等静态资源都单独编写一个视图函数。视图函数来专门处理静态文件,它不只能够处理 CSS 类型文件,还支持 JavaScript 文件和图片。现在 Todo List 程序已经有了处理静态资源的能力,接下来再给 Todo List 程序添加一个网页图标。由于我们实现的模板引擎不支持直接将 CSS 嵌入在 HTML 中的写法,所以要将 CSS 独立出来。目录,专门用来存储 CSS、JavaScript、图片等静态文件,在。
2024-06-07 10:27:48
868
原创 用 Python 撸一个 Web 服务器-第4章:动态渲染数据
上一章中为了尽快让 Todo List 程序跑起来,并没有完全按照MVC模式编写程序。这一章就让我们一起实现一个完整的MVC模式 Todo List 程序首页。
2024-06-07 10:26:48
833
原创 用 Python 撸一个 Web 服务器-第3章:使用 MVC 构建程序
我们将要编写的 Todo List 程序包含四个页面,分别是注册页面、登录页面、首页、编辑页面。以下分别为四个页面的截图。注册页面:注册登录页面:登录首页:首页编辑页面:编辑程序页面非常简洁,甚至有些 Low。但这足够我们学习开发 Web 服务器程序原理,页面样式的问题并不是我们本次学习的重点,所以读者不必纠结于此。Todo List 程序功能大概分为两个部分,一部分是 todo 管理,包含增删改查基础功能;另一部分是用户管理,包含注册和登录功能。
2024-06-07 10:25:46
880
原创 用 Python 撸一个 Web 服务器-第2章:Hello World
如果不写这行代码,那么在程序运行完成后需要马上重启程序时,由于上次的端口还在占用,会导致程序抛出异常,端口需要在间隔一段时间后才会被释放允许使用。改成多线程版本以后,服务器每接收到一个客户端连接,就将其交给一个新的子线程来处理,主线程继续执行到下一轮循环等待新的客户端连接。无限循环,在处理完一个客户端连接对象以后程序马上执行到下一次循环,开始等待新的客户端连接,这样就实现了服务器程序永久运行。会阻塞程序,等待客户端的连接,一旦有客户端连接上来,它会分别返回客户端连接对象和客户端的地址。
2024-06-07 10:24:26
680
原创 用 Python 撸一个 Web 服务器-第1章:Web 开发简介
Web 开发技术一直在高速发展,各种新奇概念与框架层出不穷,尤其在 Web 前端领域,几年前还是 jQuery 的天下,而如今在 Vue、React 等框架面前也显得廉颇老矣。不过,虽然各种框架技术日新月异,但 Web 开发的核心概念与本质依旧不曾改变,本教程将通过一个 Todo List 应用带你探索 Web 开发基本原理,只有真正明白了 Web 开发的核心基础,才能更轻松的应对新框架与技术。我们常见的软件种类有桌面软件、移动 APP以及网页应用等,Web 开发通常就是在开发网页应用。
2024-06-07 10:22:39
1252
原创 Windows快速安装Rust
Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。
2024-04-22 10:48:07
919
1
原创 使用 Phoenix LiveView 构建 Instagram (8)
使用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序more在第 7 部分中,我们在顶部标题导航菜单中添加了搜索功能,在这部分中,我们将研究书签功能,并在以下内容向我们的主页添加新帖子时通知用户。您可以赶上Instagram 克隆 GitHub Repo。当我们尝试创建未选择图像的新帖子时,让我们处理错误,为此,我们需要在内部的保存句柄函数中正确进行模式匹配因为我们用来Ecto.Multi。
2023-09-01 10:26:09
156
原创 使用 Phoenix LiveView 构建 Instagram (7)
当参数不为空时,我们将发送一条带有搜索参数的消息,以在父 LiveView 中运行搜索,这样我们就可以在搜索时显示加载指示器,每次表单更改时,我们都必须重置我们的分配,设置。就是这样,现在你有了一个功能齐全的搜索输入,还有很多事情要做,很多可以添加的功能,但我们已经走了很长一段路,我们有一个值得我们自豪的大应用程序,直到下一个时间。我们必须发送消息,因为如果我们尝试在标头导航组件套接字中执行此操作,则分配首先同时发生,因此如果我们这样做,我们将无法在搜索时以及在组件,我们无法将。以在搜索时显示加载指示器。
2023-09-01 10:25:05
2235
原创 使用 Phoenix LiveView 构建 Instagram (6)
我们正在检查用户是否登录以获取以下列表并将其传递给分配提要函数以返回分配了提要的套接字,我们在句柄参数函数中执行此操作。在第 5 部分中,我们添加了 show-post 页面,在这部分中,我们将在主页上进行工作。当我们喜欢帖子或评论时,我们需要处理从 Like 组件发送的消息,我们还必须处理用钩子触发的事件以加载更多帖子,更新。我们使用与显示页面上使用的相同的表单来添加新评论,并且循环遍历帖子评论和临时评论,以便在添加新评论时能够更新评论。
2023-09-01 10:24:11
105
原创 使用 Phoenix LiveView 构建 Instagram (5)
使用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序more在第 4 部分中,我们添加了个人资料帖子部分和帖子页面,在这部分中,我们将处理显示帖子页面。您可以赶上Instagram 克隆 GitHub Repo。让我们首先为显示页面添加基本模板,打开打开。
2023-09-01 10:23:29
109
原创 使用 Phoenix LiveView 构建 Instagram (4)
在第 3 部分中,我们添加了个人资料页面以及关注和显示帐户的功能,在这部分中,我们将处理用户的帖子。我们添加了一个事件处理函数,该函数将在模板中使用 javascript 挂钩触发,如果不是最后一页,它将加载更多页面。我们将每个新页面附加到 posts div 中,底部有一个空的 div,每次可见时都会触发事件来加载更多页面。我们正在对 URL ID 进行解码,因为在我们的个人资料模板中,当我们发布帖子时,一切都保持不变,我们只需分配页面并设置每页的限制,然后在我们的。在文件夹中创建我们的实时视图文件。
2023-09-01 10:22:36
96
原创 使用 Phoenix LiveView 构建 Instagram (3)
使用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序more在第 2 部分中,我们添加了编辑帐户和上传用户头像的功能,在这部分中,我们将处理用户的个人资料。您可以赶上Instagram 克隆 GitHub Repo。首先,我们需要路由,在根范围下打开添加以下路由:browser然后让我们在在里面添加以下内容里面打开第 56 行的导航标题,我们需要找到用户名参数传递给我们的实时视图的用户,打开。
2023-09-01 10:21:20
160
原创 使用 Phoenix LiveView 构建 Instagram (2)
使用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序more在第 1 部分中,我们已完成所有设置并准备好基本布局,让我们开始处理用户设置。您可以赶上Instagram 克隆 GitHub Repo。让我们首先创建路由,打开然后我们需要创建这些 liveview 文件,在该文件夹内创建一个名为user_liveunder 的文件夹。
2023-09-01 10:20:00
118
原创 使用 Phoenix LiveView 构建 Instagram (1)
使用PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)技术栈构建一个简化版的Instagram Web应用程序more更好的学习方法是亲自动手构建东西,让我们使用很棒的 PETAL(Phoenix、Elixir、TailwindCSS、AlpineJS、LiveView)堆栈构建一个简化版的 Instagram Web 应用程序,并深入了解函数式的黑暗世界编程和最热门的孩子在凤凰框架与LiveView。
2023-09-01 10:18:35
171
原创 面向对象代码的几点建议
总的来说,写好面向对象风格的代码需要对面向对象编程的思想有深入的理解,同时需要不断的实践和改进。要写出高质量的面向对象代码,需要不断地学习和思考,从中总结出一套适合自己的编程规范和模式。TDD可以帮助我们更好地组织代码,设计更好的接口和类,并且保证代码的质量和可维护性。如果一个类仅仅使用了另一个类的一小部分功能,就不应该将整个类作为参数传递给它,而应该仅传递需要的参数。应避免在代码中出现硬编码的实现,而是使用接口或抽象类来定义通用的规范。应尽可能的避免修改已有的代码,而是通过扩展来实现功能的增加。
2023-03-08 20:49:05
123
原创 函数式编程的几点建议
总的来说,写好函数式风格的代码需要对函数式编程的思想有深入的理解和实践,同时需要不断地学习和尝试新的技术和方法。要写出高质量的函数式代码,需要注意代码的可读性、可维护性和性能,并且应该遵循函数式编程的一些通用原则和惯例。因此,应该尽可能地使用有意义的变量名和函数名,并且避免使用过于复杂的表达式或语句。高阶函数指接受函数作为参数或返回函数作为结果的函数。高阶函数可以提高代码的抽象度和复用性,并且是函数式编程的核心特性之一。递归是函数式编程中常用的一种方法,可以简化许多复杂的算法和数据结构操作。
2023-03-08 20:45:27
168
原创 关于ArchLinux系统中某些软件无法输入中文的问题
通过编辑/etc/environment或/etc/profile添加以下三个环境变量即可解决FCITX在所有软件的中文输入问题或者只能解决命令行不能输入中文的问题。或者比如像我的虽然是被注释掉的,在最下面添加以下两个也可以。一般安装的时候都会选安装中文,如果不确定,最好检查一下)(P.S.建议添加在用户变量里面,不用一个一个去改对应的软件配置)那么其他不管怎么设置都是无法输入中文的,要么直接在。里面,或者直接添加在程序的运行shell脚本里面。设置好上面的两个语言配置,用下面的命令更新一下。
2022-12-18 18:15:30
5051
1
原创 ArchLinux安装MySQL(MariaDB)-10.9.4-MariaDB-2022.12最新版
2022年Arch安装最新版MySQL安装重设密码,使用最新版10.9.4-MariaDB安装MySQL
2022-12-05 15:46:45
977
原创 MySQL、Redis、MongoDB等安装【Docker版】
在原生系统上安装软件和环境很麻烦,总是缺这个那个,而且开发和部署环境不一致也会导致问题,部署也麻烦。所以本文介绍用Docker来方便的安装需要的软件和环境。
2022-10-28 22:22:49
618
原创 SQL学习笔记
检索数据检索不同的值检索出不同的值,使用distinct,而且必须放在列的前面,作用于后面所有的列select distinct vend_id from Products;限制结果使用MySQL、MariaDB、PostgreSQL或者SQLite,需要使用LIMIT子句select prod_name from Products limit 5;LIMIT 5指示MySQL等DBMS返回不超过5行的数据为了得到后面的5行数据,需要指定从哪儿开始以及检索的行数,像这样:select pr
2022-09-18 16:20:25
597
原创 kubernetes学习笔记
kubectl get - 列出资源kubectl describe - 显示有关资源的详细信息kubectl logs - 打印 pod 和其中容器的日志kubectl exec - 在 pod 中的容器上执行命令Service 通过一组 Pod 路由通信。Service 是一种抽象,它允许 Pod 死亡并在 Kubernetes 中复制,而不会影响应用程序。在依赖的 Pod (如应用程序中的前端和后端组件)之间进行发现和路由是由Kubernetes Service 处理的。Service 匹
2022-03-20 13:14:33
686
原创 CentOS 7.7安装Erlang和Elixir
安装之前,先看一下它们的简要说明ErlangErlang是一种开源编程语言,用于构建对高可用性有要求的大规模可扩展的软实时系统。它通常用于电信,银行,电子商务,计算机电话和即时消息中。Erlang的runtime系统具有对并发,分发和容错的内置支持。它是在爱立信计算机科学实验室设计的。ElixirElixir是一种动态的功能语言,旨在用于构建可伸缩和可维护的应用程序。Elixir利用了以运行低延迟,分布式和容错系统而著称的Erlang VM,同时也成功地用于Web开发和嵌入式软件领域。现在开始在C
2022-01-27 23:59:40
824
原创 安装JMeter插件---JMeter插件管理器
获取插件最简单方法是安装插件管理器。然后只需单击复选框即可安装任何需要的插件。打开https://jmeter-plugins.org/get/下载后将其放入jmeter的lib/ext目录,然后重新启动JMeter。官网:https://jmeter-plugins.org/install/Install/...
2022-01-27 20:47:13
1464
原创 pytest学习常用三方模块或库
pip 安装可以使用镜像来加速,例如:pip install 模块名 -i https://pypi.douban.com/simple镜像也可以自行选择自己喜欢的,这里演示用 豆瓣源失败重跑插件pytest-rerunfailures支持:Python3.6-3.10pip install pytest-rerunfailures测试结果生成HTML报告插件 pytest-html支持:Python3.6-3.9pip install pytest-html重复执行用例插件pyt.
2022-01-27 20:26:44
9782
原创 Jmeter安装和环境配置
官网下载Binaries下的zip包JMETER_HOME解压后的文件夹位置,路径最好是英文,比如D:\qa\jmeter只要上面的配置正确,下面的复制粘贴就行了CLASSPATH%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%jorphan.jar;Path%JMETER_HOME%\bin...
2022-01-26 16:54:49
254
原创 MySQL、Redis、MongoDB安装
MySQL安装MySQL安装官网文档:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/MySQL 安装URLwget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.debsudo dpkg -i 刚下载的.deb文件使用以下命令从 MySQL APT 存储库更新包信息(此步骤是必须的)sudo apt-get updatesudo apt-get ins.
2022-01-26 12:40:29
433
原创 MySQL连接访问的一些问题
1130错误:更改要登录用户的host为“%”update user set host = '%' where user ='root';刷新MySQL的系统权限相关表flush privileges;1251错误:在mysql中先更改加密方式,指令如下:ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;然后再更改密码,由于加密规则更改,所以需要重新设置密码;ALTER USER .
2022-01-25 22:28:49
966
原创 Ubuntu上MySQL、MongoDB、Redis的安装
*********************************************MySQL安装*********************************************MySQL安装官网文档:https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/--------------------------------------------使用系统为Ubuntu18.04MySQL5.7 apt安装要18.04,因
2022-01-25 22:23:37
950
Elixir in Action, 2nd Edition 免积分下载
2022-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人