自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 收藏
  • 关注

原创 Docker使用(容器、镜像相关命令)

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。

2022-12-21 17:18:19 634 1

原创 flask框架之多app应用、flask-scrip、导出依赖、偏函数、threading.local、请求上下文执行流程

1.在app中新建包:managenent2.在management下新建包:commands3.commands新建py文件,py文件名就是命令名 init.py4.init.py写入parser.add_argument('--name', type=str) # 指令接受的参数列表,参数名左边有两个减号,可以添加类型限制。

2022-12-16 16:11:19 1443

原创 flask之g对象、flask-session使用、数据库连接池、信号

全称global,是一个全局对象在此次请求过程中一直有效,其实就是请求的上下文从请求进来就一直存在直到请求结束,所以在当次请求过程中,如果调用别的函数不需要把参数传入只需要放到g对象中在别的函数中直接使用g获取即可

2022-12-14 21:07:15 1201

原创 flask请求与响应、session执行流程

1.请求来的时候会执行open_session,取出cookie判断是否为空,如果不为空把它反序列化、解密转成字典,然后放到session对象中2.请求走的时候会执行save_session,把session转成字典序列化加密成三段放到cookie中。

2022-12-13 20:20:45 824

原创 Flask框架快速入门使用

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

2022-12-12 21:24:32 703

原创 scrapy框架了解与使用

Scrapy 是开源和协作的一个基于 Twisted 实现的异步处理爬虫框架使用纯 Python 语言编写,被誉为爬虫界的Django,Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等mac、linux系统在Windows中可能会出现报错等情况这是因为依赖没有安装需要先安装相关依赖创建Scrapy爬虫项目在pycharm中运行Scrapy架构工作流程Scrapy 框架构成组件:Scrapy 工作流程示意图如下所示:1.2增加爬虫的爬取效率持

2022-12-07 18:47:01 807 1

原创 xpath的使用

XPath(全称:XML Path Language)即 XML 路径语言,它是一门在 XML 文档中查找信息的语言,最初被用来搜寻 XML 文档,同时它也适用于搜索 HTML 文档。因此,在爬虫过程中可以使用 XPath 来提取相应的数据。xpath在python中的使用2.selenium动作链用来实现网站中有些严重需要按住鼠标滑动的效果方式一:暴力的将图片移动到指定位置方式二:图片一点一点的移动到指定位置通过动作链自动登录12306网站3.使用打码平台自动登录

2022-12-06 20:44:06 1053

原创 celery介绍与使用

1.celery可以实现异步任务来提高项目的并发量,完成延迟任务、定时任务2.celery是一个简单、灵活、可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具1.消息中间件:broker 提交的任务(函数)都放到这里,celery本身不提供中间件,需要借助于第三方:redis,rabbitmq2.任务执行单元:worker,真正执行任务的地方,一个个进程,执行函数3.结果存储:backend,函数return的结果存储在这里,celery本身不提供结果存储,借助于第三方:redis,数

2022-12-06 19:48:53 982

原创 项目上线远程服务器

ps:如果报下载mysqlclient的错误,先vim requirements.txt中把这个注释掉把其他的下载好。- 为了使上线后的程序并发量提高我们不再使用测试阶段的wsgiref来运行而是使用uwsgi。- 安装项目依赖:pip install -r requirements.txt。- uwsgi是符合wsgi协议的web服务器,使用c写的性能高。- 将前端项目中的ajax请求地址改成云服务项目ip地址。- 本地连接云服务器数据库运行导出的sql文件。- 导出项目所有的依赖。

2022-11-24 16:23:59 175

原创 Redis数据类型

在任何一种编程语言中,字符串都是最基础的数据结构,在Redis中String是可以修改的称之为:动态字符串(简称SDS)- 当字符串的长度小于1MB时,每次扩容都是加倍现有的空间- 如果字符串长度超过1MB时,每次扩容时只会扩展1MB空间ps:这样既保证了内存空间够用,也不会造成内存的浪费,字符串最大长度为512MB。

2022-11-15 21:18:18 632

原创 Redis介绍与下载

由Salvatore Sanfilippo写的key-value存储系统,是跨平台的非关系型数据库Redis通常被称之为数据结构服务器,因为值(value)可以是字符串、哈希、列表、集合和有序集合等类型Redis是完全开源的遵守BSD协议,是一个高性能的key-value数据库- 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用- Redis不仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构存储。

2022-11-15 19:50:52 389

原创 Git协同开发

采用协同开发后又可能会出现此类情况,当另一个开发者和你同时修改了相同的代码,但是他比你先提交到了远程仓库这时你再向远程仓库提及会发现提交不上,将代码clone下来可以看到代码的冲突。有一个项目由好几个人共同开发,组长把底层代码提交到远程仓库中,开发者把代码clone到自己的本地进行编写自己负责的功能,写完就推到远程仓库中这就是协同开发。另一种冲突可能是当开发在dev分支上进行开发时,master主分支提交了新的版本又恰巧新版本的代码和dev分支改的代码冲突这时候推代码的时候会出现冲突。

2022-11-09 19:48:38 1034

原创 git使用介绍

用来将自己的代码托管至一些代码管理平台进行代码的版本管理和协同开发,比如Github、Gitee,有些公司也会使用自己搭建的Gitlab-克隆 Git 资源作为工作目录,只要被Git管理了当文件发生变化(增、删、改),使用Git就能看到文件变成了红色- 工作区的变更要提交到暂存区文件又会变成绿色- 从暂存区提交到版本库才会被版本管理,一旦被版本管理了后期可以回退到某个版本- 可以把版本库的内容提交到远程仓库,统一管理起来所有的开发者都可以提交- 将远程仓库的项目clone下来,也可以将本

2022-11-08 20:30:07 408

原创 初始化全局样式配置与前后端跨域问题

简单请求请求方法是一下三种方式之一:- 非简单请求的请求头信息超过以下几种字段:Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain。

2022-11-07 21:17:45 242

原创 Vue3多介绍使用

打包大小减少41%初次渲染快55%, 更新渲染快133%内存减少54%使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-ShakingVue3可以更好的支持TypeScript- Composition API(组合API)setup配置ref与reactivewatch与watchEffectprovide与inject- 新的内置组件- 其他改变新的生命周期钩子。

2022-11-02 22:03:09 302

原创 Vuex与Vue-router的使用

在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,用于任意组件间的通信state:存储数据的地址actions:中转站,可发送异步请求增加判断mutations:真正改state数据的地方。

2022-11-01 18:31:34 1000

原创 Vue项目开发介绍

内部有很多当前项目依赖的模块存放页面图标和不支持 JavaScript 情况时的页面网站小图标spa单页面应用存放 vue 项目的源代码静态资源,js、css,图片小组件,用在别的页面大组件中默认了一个hello world组件装了vue-router自动生成的,如果不装就没有vue-router的配置装了vuex自动生成的,如果不装就没有vuex的配置放了一堆组件,页面组件关于 页面组件主页 页面组件根组件整个项目启动入口git的忽略文件babel的配置文件。

2022-10-31 20:14:53 1520

原创 Vue组件与Vue-cli脚手架安装

父子组件可以理解为组件中再嵌套一个组件,他们的定义和普通组件是一样的只是多了一个嵌套;父组件中需要声明子组件,引入子组件对象ps:无论是哪种类型的组件每个组件都相当于一个完整的vue实例,组件与组件之间的数据是不互通的

2022-10-30 22:42:44 192

原创 表单控制、Vue生命周期

文本框的绑定需要使用指令。v-model 指令会根据控件类型自动选择正确的方法来更新元素。在表单中,文本框是最基本的表单控件类型,它分为单行文本框和多行文本框。单个复选框,就是只有一个复选框,而在使用 v-model 绑定的是一个布尔值。当选中复选框时, v-model 指令绑定的 checked 属性值为 true,否则该属性值为 false多个复选框,就是可以选择多个复选框。如果有多个复选框,应用 v-model 指令绑定的便是一个数组。当选中某个复选框时,该复选框的 value 值会存入数组中。

2022-10-26 18:56:09 550

原创 Vue介绍

class='js变量、字符串、js数组'class:三目运算符、数组、对象{red:true}:style='js变量、字符串、js数组'style:三目运算符、数组[{backgreound:'red'},]、对象{background:'red'}

2022-10-25 19:33:30 279

原创 Vue基础介绍

前端:针对浏览器的开发,代码运行在浏览器后段:针对服务器的开发,代码运行在服务器。

2022-10-24 19:46:34 605

原创 虚拟机名词解释与linux命令

可以访问互联网配置的地址信息和物理主机网段地址信息相同,容易造成地址冲突可以访问互联网配置的地址信息和物理主机网段地址信息不同,造成不了地址冲突不可以访问互联网获取地址主要用于虚拟主机之间沟通,但不能访问外部网络。

2022-10-18 22:03:01 356

原创 linux运维介绍

随着技术的进步,各种型号的计算机性能指标都在不断地改进和提高,以致于过去一台大型机的性能可能还比不上今天一台微型计算机。按照巨、大、中、小、微的标准来划分计算机的类型也有其时间的局限性,因此计算机的类别划分很难有一个精确的标准。台式机笔记本服务器- 云主机服务器 (虚拟服务器)- 物理主机服务器:机架服务器、刀片服务器、塔式服务器 (现实服务器)

2022-10-18 10:02:32 1145

原创 排序和过滤类源码、RBAC的介绍和使用、simplu美化

RBAC(Role-Based Access Control )基于角色的访问控制,在RBAC中-----权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这极大地简化了权限的管理,这样管理都是层级相互依赖的,权限赋予给角色而把角色又赋予用户,这样的设计管理起来很方便RBAC权限管理的模式最适合公司内部的管理系统,不适合对外互联网用户的系统。-公司内表与表关系用户表:用户信息角色表:部门权限表:各种权限。

2022-10-13 22:40:15 262

原创 jwt认证原理

有时候我们可能需要自己定义用户表这时候再直接用dif-jwt快速方法就不行了,我们需要自己写token第一步再models中定义user表并数据迁移第二步在视图中自己写登陆接口try:# 获取username、password# 使用用户存在再使用djagnorestframework-jwt模块提供的签发token的函数,生成tokenreturn Response({'code':100,'msg':'登录成功','token':token})# 获取不到用户抛异常。

2022-10-12 22:24:09 910

原创 dif内置三大认证类与全局异常、API接口文档

第一步:写一个类继承BaseFilterBackend# 重写某个方法第二步:重写filter_queryset方法# 在这里面实现过滤,一定要返回qs对象,过滤后的数据return qs第三步:配置在视图类中# 指定自定义的过滤类第四步:前端访问形式name=程序&perce=66# 精准搜索条件间是并且的关系ps:多个过滤类和排序类是可以共用的,在视图类的filter_backends=[],可以配置多个,执行顺序是从左往右,因此最左边的要尽可能的先过滤掉大部分数据。

2022-10-11 19:01:38 310

原创 dif分页、排序、过滤功能

page_size:每页显示的条数page_query_param:前端发送的页数关键字名,默认为"page"page_size_query_param:前端发送的页数数目关键字名,默认为Nonemax_page_size:限制通过size查询每页最大的条数。

2022-10-10 21:25:20 570

原创 权限类与频率类

比如:一个鸭子类中有run和eat方法,那么我不需要显示继承这个类只要我的类中也有run和eat方法那么我就是鸭子类。方式二:dif源码中的方式 父类中写这个方法,但是不具体实现直接抛异常,当没有重写这个方法时就执行父类中的抛异常。第二步:重写get_cache_key,返回唯一的字符串会以这个字符串做频率限制。第四步:在配置文件中写 DEFAULT_THROTTLE_RATES。但是:要是在我的类中的方法写错了那么它就不是这个类型了会出现问题,因此有两种解决方式。在配置文件settings.py中。

2022-10-09 19:26:20 171

原创 自动生成路由

SimpleRouter与DefaultRouter区别:DefaultRouter比SimpleRouter多一个跟路径显示所有注册过的路由。

2022-10-09 15:32:16 638

原创 dif请求与响应

在原生Django中put请求提交的数据在requuest.POST中是取不到的而在DRF的Request类通过request.data就可以获取POST、PUT、PATCH请求方式解析后的数据请求的所有 url 拼接参数都被解析到 request.中,原生Django中request.GET功能一样ps:其他的用法与之前原生Django一样,继承APIView后每一次请求都是一个新的request。

2022-09-29 21:46:36 439

原创 序列化组件

CharField:max_length=None, min_length=None, allow_blank=False, trim_whitespace=True BooleanField:BooleanField() IntegerField:IntegerField(max_value=None, min_value=None) DecimalField:DecimalField(max_digits, decimal_places, coerc

2022-09-27 21:02:14 356

原创 APIView与序列化组件使用

1.只要继承APIView都没有csrf的认证2.视图类中使用的request变成了dif提供的Request类的对象3.执行视图类的方法之前,执行了3大认证(认证、权限、频率)4.在执行三大认证和视图类的方法过程中只要报错都会被捕获处理。

2022-09-26 20:29:22 527

原创 后端drf开发

APL(Application Programming Interface),就是应用程序接口在项目开发中是必要的组成部分之一,当前后端在联动调试的时候需要通过接口来请求数据与响应数据从而形成一个完整的程序REST全称(Representional State Transfer),中文意思是表述:表征性状态转移首次出现在2000年 Roy Fielding 的博士论文中,REST与技术无关代表的是一种软件架构风格,尤其适用于前后端分离的应用模式中。

2022-09-24 15:04:11 704

原创 Django之csrf与auth模块操作

auth模块是强大的django自带的一个用户认证模块,我们在开发网站的时候不可避免的需要用到用户的登录、注册等功能有了auth模块可以给我们带来更快的编写功能,django在执行数据库迁移命令后会产生一个auth_user表配合auth模块做用户认证,该表还是django admin后台管理默认的表# admin后台管理员账号创建。

2022-09-13 23:25:35 327

原创 Form组件

当需要展示大量数据的时候如果同时一下子全部加载到页面上给人的观看感肯定不佳,同时也有卡死的现象,所以我们要用到分页指定一个页面展示几条这样就简介清楚自定义分页器封装代码需要用的时候直接复制即可,但是其中原理最好能掌握"""封装分页相关数据:param current_page: 当前页:param all_count: 数据库中的数据总条数:param per_page_num: 每页显示的数据条数:param pager_count: 最多显示的页码个数"""try:# 总页码。

2022-09-08 21:52:18 354

原创 Django与Ajax

同步交互:客户端发出一个请求后需要等待服务器响应结束后才能发出第二个请求异步交互:客户端发出一个请求后无需等待服务器响应结束就可以发第二个请求Ajax异步提交 局部刷新,用案例来讲就是当你在注册的时候很多网址在你输入用户名时就会判断当前用户是否已经注册但是网页并没有朝后端发送请求这就是Ajax的异步提交// 基础语法格式$.ajax({url:'', // 控制数据提交的地址不写就是当前服务器地址type:'', // 控制请求方式默认为get请求data:{}, // 组织提交的数据。

2022-09-07 20:47:47 390

原创 模型层知识点补充

【代码】模型层知识点补充。常见字段与常见字段参数,多对多关系表创建三种方式

2022-09-06 22:10:37 265

原创 ORM数据库查询操作

【代码】ORM数据库查询操作。F与Q查询及查询优化、分组查询等

2022-09-06 20:22:40 379

原创 ORM数据库操作

【代码】ORM数据库操作。ORM就是为了让不会数据库操作的python程序员也能够操作数据库处理数据,而处理数据无非就是对数据的增、删、改、查,因此ORM给我们提供了各种操作数据的关键字

2022-09-05 21:48:15 1048

原创 Django之模版层

有时候我们也可以自己才定义过滤器制定一些自己想要的功能,django中就可以自定义标签,但是必须得先做几个准备步骤:1.在应用下创建一个名为templatetags文件夹2.在该文件夹内创建任意名称py文件3.在该py文件内编写自定义相关代码# 固定语句# 自定义过滤器@register.filter(name='自定名字')# 自定义标签函数@register.simple_tag(name='自定名字')# 自定义inclusion_tag。

2022-09-03 20:55:09 157

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除