- 博客(134)
- 收藏
- 关注
原创 go语言 类型和常量
短变量声明只能在函数内部使用,它是一种非常常见的变量声明方式,因为它可以减少代码量并提高可读性。Go语言是一种静态类型语言,这意味着所有变量的类型在编译时必须明确,并且一旦定义,类型就不能改变。: 如果需要声明一个变量并将其初始化为特定的类型,可以使用类型转换来实现。常量是指一旦被赋值后,其值就不能被改变的变量。用于声明编译时常量,其值在编译时就已确定,并且在运行时不可更改。:Go语言的常量在编译时就已经确定,这使得编译器可以进行优化。是一个特殊的关键字,用于在定义一组相关常量时提供自动增量的值。
2024-07-05 12:21:09
1051
原创 go 语言初识
简介Go语言的发展历史:Go语言早期版本发布。:Go 1版本发布,标志着语言稳定性的提升。:Go 1.5版本发布,移除了最后的C代码,实现了自举(即使用Go语言本身来编译Go语言)。:Go 1.14版本发布,此时Go Module已经成为官方推荐的包管理工具。特点:Go是静态类型语言,这意味着所有变量的类型在编译时都需要明确,不同类型之间不允许直接运算。:与解析型语言不同,Go语言的源代码在执行前需要先编译成机器码,然后由机器直接执行。
2024-07-02 16:03:26
637
原创 Flask 集成sqlalchemy
在SQLAlchemy中,一对多关系通过函数和ForeignKey约束来定义。Hobby类:代表一个爱好,它是一个独立的实体,拥有多个喜欢这个爱好的人。Person类:代表一个人,他/她可以有一个爱好。# 新版本创建基类passdesc = Column(String(50), default='篮球')
2024-07-02 16:02:22
1416
原创 Flask 缓存和信号
信号的概念信号是一种松耦合的通信方式,允许对象间的交互而不需要显式调用对方的方法。在 Flask 和 Django 中,信号可以用于监听和响应框架的特定事件,如请求开始、模板渲染、模型保存等。信号与信号量的区别信号(Signal)是观察者模式的一种实现,用于事件通知和通信。信号量(Semaphore)是并发编程中用于控制对共享资源访问的计数器锁。信号的好处低侵入性:信号允许在不修改现有代码的基础上,添加新的功能或行为。解耦:信号可以降低代码间的依赖关系,提高模块化。
2024-07-01 19:57:51
1167
原创 Flask自定义命令
Flask 1.x 和 2.x 版本在Flask的老版本中,可以通过 扩展来添加自定义命令。安装所需库:在 Flask 应用中创建一个 对象,并使用装饰器定义自定义命令:运行自定义命令:二、Flask 新版本(2.x 及以后)Flask 新版本通过内置的 模块支持自定义命令,不再需要 :使用 装饰器定义命令:运行自定义命令:如果你的脚本文件名为 ,则可以简化命令为:三、flask自定义命令示例要求:制定一个flask命令,导入一个excel,把数据同步到 us
2024-07-01 19:57:02
630
原创 Flask模板和wtforms
在 Jinja2 模板引擎中,可以使用各种功能来渲染变量、进行循环和逻辑判断,这与 Django 的模板系统有很多相似之处,但也存在一些差异。
2024-06-30 17:42:52
665
原创 Flask-Session使用Redis
RedisSessionInterface继承ServerSideSessionInterface。设置session的cookie名称和配置,指定session类型为redis。使用Redis时,使用的是RedisSessionInterface。要使用Flask的session功能,首先需要安装。来将session数据存储到Redis中。创建Redis连接对象,并使用。创建Redis连接,并使用。类来初始化Flask应用。字典来存储和获取数据。
2024-06-29 16:25:59
858
原创 Flask蓝图
蓝图(Blueprint)在 Flask 中是一个用于组织多个模块化子应用的强大工具。它允许开发者将不同的功能模块划分到不同的包或目录中,使得大型项目更加易于管理和维护。
2024-06-29 16:25:20
650
原创 Flask的session、闪现和g对象
在 Flask 中,g对象是一个特殊的对象,用于存储每个请求的全局变量。当请求到达 Flask 应用时,g对象被创建。g对象用于存储在请求处理期间需要共享的数据。它是global的缩写,代表请求级别的全局变量。g对象在请求的整个生命周期内都是可用的,从请求到达开始,直到响应返回结束。使用g对象可以在不同的视图函数、装饰器或中间件之间共享数据。Flask 不建议直接修改request对象来存储数据,因为request对象应该只包含请求的原始数据。
2024-06-27 20:11:33
1995
1
原创 Flask路由和视图
Flask使用装饰器@app.route来将URL规则绑定到视图函数上。装饰器可以指定路径规则(rule)、请求方法(methods)、以及别名(endpoint)等。Flask默认支持多种路径转换器,如intfloatstring等,用于将URL中的变量部分转换为不同的数据类型。转换器使得URL可以动态匹配,并允许开发者定义复杂的URL规则。
2024-06-24 23:21:58
1182
原创 Flask初识
Werkzeug 是一个强大的 WSGI工具包,它为 WSGI 应用程序提供了一系列实用功能。它并不是一个完整的 Web 服务器或框架,但它为开发者提供了一个底层的库,用于构建 Web 框架或直接创建 WSGI 应用。遵循 WSGI 协议:Werkzeug 遵循 Python 的 WSGI 标准,这使得它可以与任何兼容 WSGI 的服务器或应用程序交互。丰富的工具集。
2024-06-24 23:21:19
822
原创 Vue 工程化项目
vue_test # 项目名-node_modules # 等同于python的venv虚拟环境-public # 不会被webpack处理的文件夹-favicon.ico # 小图标-index.html # 单页面应用,整个vue项目,就只有这一个html-src # 核心代码文件夹-assets # 静态资源文件夹-components # 可以重用的Vue组件-views # 页面组件,模仿页面跳转。
2024-05-19 23:04:13
1223
原创 Vue 进阶语法-下篇
在Vue中,组件是可复用的Vue实例,拥有与Vue实例相似的选项,例如datacomputedwatchmethods以及生命周期钩子等。组件是构建大型应用的基础。通过使用组件,我们可以将UI拆分为独立、可复用的部分,并使整个应用更容易管理和维护。template: 定义组件的HTML模板。data: 返回一个对象,表示组件的初始状态。在这里,组件有一个title属性,其初始值为'首页'。methods: 定义组件的方法。方法会在按钮被点击时调用,并弹出一个警告框显示title的值。
2024-05-19 23:01:43
1117
原创 Vue 进阶语法-上篇
.prevent和.once 修饰符调用 。它阻止了元素的默认行为。例如,阻止表单提交或阻止点击链接的默认行为。可以阻止以后根据具体条件再次判断执行其他内容 修饰符确保事件处理器只触发一次。常用于抽奖上.。(2)按键修饰符Vue允许使用按键修饰符来监听特定的按键事件。例如,你可以监听 事件,并只在按下特定的键时触发回调。键码对照表:键盘键值对照表 - 在线工具栏 (usetoolbar.com)常用按键【11】表单(1)表单控制Checkbox(复选框) 通常用于表示一系列选项
2024-05-18 14:20:39
461
原创 gitee 远程仓库
本地同样的在master分支上进行同样的文件(4.txt)修改,然后提交到远程,会报错提示。然后是线上(即gitee上)在master分支上,修改任意文件(4.txt)首先要保证的是初始状态上线上和本地是一直的(即本地先pull一下)根据提示,自行决定保留,然后提交即可。
2024-05-18 14:17:42
1045
原创 git 基础
瀑布式开发线性、顺序的开发流程,严格按照需求分析、设计、编码、测试、交付等阶段进行。每个阶段都必须在前一个阶段完成后才能开始,因此开发周期长,难以应对需求变更。适用于需求明确、稳定且不易变更的项目。敏捷开发强调快速迭代、持续交付和团队协作。将项目划分为多个小模块或迭代周期,每个迭代周期都包含需求分析、设计、编码、测试等完整流程。团队成员之间紧密协作,通过定期召开站立会议、评审会议等方式保持信息同步。灵活应对需求变更,及时调整开发计划。DevOps强调开发、测试和运维之间的协作与整合。
2024-05-15 22:07:25
981
原创 DRF 跨域问题
options请求就是非简单请求的预检请求response["Access-Control-Allow-Headers"]='Content-Type, *' # 注意:通常不建议使用 '*',应该明确列出允许的头response['Access-Control-Max-Age'] = 86400 # 预检请求的缓存时间(秒)response["Access-Control-Allow-Origin"] = "*" # 注意:'*' 允许所有来源,但出于安全考虑,建议使用具体的来源注意。
2024-05-15 22:06:01
1234
原创 Vue 封装axios
首先从本地会话中获取token,然后拼接指定的格式(这是jwt认证,所以要拼接一下)有一个必要的code:标识响应成功与否,这了规定成功是100,失败是其他的。返回的code如果是100,那么就是成功了,所以正常返回数据信息即可。首先后端的返回数据应该是满足一定格式,这个在准备工作中说过了。再就是其他错误了,这个都是不正常的返回数据信息格式。首先查看LocalStorage中是否添加成功。如果返回code不是100,那么就是失败了。在检查发送的请求中是否携带上了token。
2024-05-14 15:12:13
983
原创 python 虚拟环境多种创建方式
在Python中,虚拟环境(Virtual Environment)是一个独立的、隔离的Python运行环境,它拥有自己的Python解释器、第三方库和应用程序。通过创建虚拟环境,可以确保项目之间的依赖关系不会相互干扰,每个项目都可以使用自己独立的Python解释器和第三方库版本。
2024-05-14 15:10:16
6664
1
原创 Python 日志模块Loguru基本使用和封装使用
Loguru是一个用于Python的日志库,它的设计目标是使日志记录变得简单、快速且易于阅读。简洁的API:Loguru提供了一个简洁的API,使得在Python项目中使用日志变得更加容易。只需导入loguru模块,然后使用其提供的函数来记录日志。自动格式化:Loguru会自动将日志消息格式化为带有时间戳、日志级别和消息内容的字符串,无需手动处理。这使得在查看日志时可以轻松地识别出每条日志的时间和级别。多种输出方式:Loguru支持将日志输出到控制台、文件、Slack、GitHub等不同的地方。
2024-05-11 11:46:14
3236
原创 DRF 纯净版创建使用
在Django中,contrib包包含了许多内置的app和中间件,如authsessionsadmin等,这些app在创建新的Django项目时默认是包含在内的。然而,在开发RESTful API时,可能不需要使用所有这些内置app,尤其是当打算使用自定义的用户模型或不需要Django的会话管理时。在这种情况下,可以创建一个更加“纯净”的Django环境,只包含真正需要的部分。
2024-05-11 11:43:34
532
原创 django后台管理+美化
指定simpleui默认的主题,指定一个文件名,相对路径就从simpleui的theme目录读取# 配置文件settings# 配置文件settings # 本地静态文件或链接都可以 SIMPLEUI_LOGO = '/static/default.png'保留系统菜单:该字段用于告诉simpleui,是否需要保留系统默认的菜单默认为False,不保留。如果改为True,自定义和系统菜单将会并存过滤显示菜单和排序功能:该字段用于告诉simpleui,是否需要开启过滤显示菜单和排序功能。
2024-05-09 14:56:49
1013
原创 es6语法总结
在导入时,可以使用自定义的名称来接收这个导出的成员,script标签需要指定类型type为module。在ES6中,模板字符串是一种新的字符串语法,用反引号(``)包围字符串内容。在函数调用时,可以使用展开运算符将一个数组的元素作为单独的参数传递给函数。在对象中使用展开运算符,可以将源对象的所有可枚举属性复制到目标对象中。当函数返回一个对象时,可以使用解构赋值来直接访问该对象的属性。默认导出的成员可以是任何类型的值(变量、函数、对象、类等)。如果解构的变量数量超过数组的长度,多余的变量会被赋值为。
2024-05-08 19:17:07
1043
原创 vue 基础语法-下篇
双向数据绑定意味着,当表单元素的值发生变化时,Vue 实例中的数据也会自动更新;反之,当 Vue 实例中的数据发生变化时,表单元素的值也会相应地更新。是一个绑定,它提供了一个唯一的标识符给每个节点,这对于 Vue 的虚拟 DOM 算法来说是必要的,以便能够高效地更新和重新排序节点。如:输入123,确认以后,在删除23,在输入23是不会触发change事件的。的表达式,如果为真,则渲染该元素或组件。:当表达式的值为真时,渲染该元素或组件。的回调函数,它接受数组中的一个元素。的表达式为假时,会评估这个。
2024-05-08 19:04:08
837
原创 Vue 介绍
官方网址:Vue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)Vue是一个构建用户界面的渐进式框架。它的核心库专注于视图层,使得开发者能够便捷地构建单页面应用。Vue通过简洁的API实现了响应式的数据绑定和组合的视图组件。Vue的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件。Vue具有轻量级和易上手的特点,因此在国内得到了广泛的应用和喜爱。渐进式框架(Incremental Framework)是一种软件开发过程中的架构设计方法。
2024-05-06 22:25:47
1372
原创 DRF 权限介绍
RBAC,全称Role-Based Access Control,即基于角色的访问控制,是一种广泛应用于各种系统中的权限控制策略。其核心思想是将权限分配给角色,再将角色分配给用户,从而实现对系统资源的有效管理和安全控制。在RBAC中,用户通过角色与权限进行关联,一个用户拥有若干角色,每一个角色拥有若干权限,这样就构造成“用户-角色-权限”的授权模型。在 Django 中,权限是自动根据模型(Model)来定义的。当你创建一个模型时,Django 会为这个模型创建三个默认的权限:添加、修改和删除。
2024-04-26 20:30:43
1009
原创 DRF JWT认证进阶
实际的案例中,登录的方式有很多种,既可以是用户名,还可以是手机号,还可以是邮箱等,并且他们的登录输入入口都是一个,所以这里将实现这种接口用户表用普通的表创建一个数据表用于侧式认证功能username = models.CharField(max_length=64, verbose_name='用户名')password = models.CharField(max_length=64, verbose_name='密码')
2024-04-26 20:29:53
2130
原创 DRF JWT认证基础
编码s:要编码的字节串(bytes类型需要是bytesstr不行返回:编码后的字节串。解码s:要解码的base64编码的字节串。长度如果不是4的倍数,后面补等号返回:解码后的原始字节串。模型表:自定义一个普通的user表username = models.CharField(max_length=64, verbose_name='用户名')password = models.CharField(max_length=64, verbose_name='密码')路由层。
2024-04-24 08:41:07
890
原创 DRF 接口文档
在Django的表模型(Model)或Django REST framework的序列化类(Serializer)的字段上,我们可以添加一个help_text属性来为接口文档提供字段的介绍信息。这样做可以帮助开发者更好地了解每个字段的用途、格式要求以及可能的取值范围,从而提高接口的可读性和易用性。
2024-04-24 08:39:01
550
1
原创 DRF 异常处理源码分析
无论是DRF的异常还是Django的异常,甚至是Python的异常都应该统一返回一个格式,告诉前端具体的异常原因记录日志信息:当前的请求方式,请求的地址,哪个视图抛出的异常,用户的首先这个方法必须要有两个参数exc和content因为通过源码分析,触发异常会将这两个参数,传递给自定义方法中,所以必须要有两个参数来接收可以从context中获取request、view等,之后一些信息记录都可以再这里拿到。
2024-04-23 16:58:35
858
原创 DRF 查询(排序、过滤、分页)
在restful规范中,有提到查询地址中可以带条件,默认排序条件是pk即:表示按照价格从低到高排序表示按照价格从高到低排序表示价格从低到高,同价格的情况下,在名字以低到高排序自定义的难度虽然大,但是这确实使用最多的需要写的类继承重写方法并返回过滤以后的queryset对象这里以价格或者书名进行过滤,可以两个同时给,可以不给,可以指定一个书名模糊匹配,价格是指定价格# 两个参数都有# 只用价格# 只用书名elif name:# 视图层示例二:只按照价格过滤,但是价格是一个区间。
2024-04-23 16:57:34
2288
原创 DRF 三大认证
三大认证之首,只有通过这个认证才会进行两外两个认证认证组件用于确定请求是来自谁。例如,它可以检查一个请求是否附带了一个有效的用户会话token,从而识别出请求的用户。三大认证的第二个,到这里说明已经通过了认证组件权限组件用于确定已认证的用户是否有权限执行某个操作。例如,一个API视图可能只允许特定的用户组或具有特定权限的用户访问。三大认证的最后一个,到这里说明已经通过了认证和权限组件权限组件用于确定已认证的用户是否有权限执行某个操作。例如,一个API视图可能只允许特定的用户组或具有特定权限的用户访问。
2024-04-22 18:59:02
1016
原创 面向对象目录总结
【零】思维导图【一】初识面向对象Python 初识面向对象-CSDN博客【二】面向对象-封装Python 面向对象之封装和装饰器property_面向对象python封装property-CSDN博客【三】面向对象-继承Python 面向对象之继承和组合_面向对象 组合 继承-CSDN博客【四】面向对象-多态Python 面向对象之多态和鸭子类型-CSDN博客【五】面向对象-绑定和非绑定方法Python 面向对象之绑定和非绑定方法_python 绑定方法-CSDN博客【六】面向对象-
2024-04-22 18:57:06
324
原创 DRF 路由层
action装饰器是一个用于在视图集中添加自定义路由和视图方法的强大工具。detail参数:这个参数决定了该动作是否针对单个实例(True)还是针对集合(False如果,则URL将包含对象的主键,例如。如果,则URL将不包含主键,例如。methods参数:这个参数是一个列表,指定了支持哪些HTTP方法(如['get']['post']['put']等)。url_path参数:这个参数是自定义路由的URL部分,它将附加到视图集的URL上。默认是方法名。
2024-04-21 14:35:16
1086
原创 DRF 视图层
前面说着通过继承,可以减少在视图中重复编写的代码量,但是并没有少些多少,这是因为不能只能用五个视图扩展类:新增,实现了create()方法:删除,实现了destroy()方法:更改,实现了update()方法:查询单条,实现了retrieve()方法:查询所有,实现了list()方法mixin类Mixin类是一种常见的设计模式,在多个类之间共享功能或行为时非常有用。Mixin类通常包含一组方法或属性,这些方法和属性可以被其他类通过多重继承方式导入并使用。
2024-04-21 14:34:03
845
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人