
如今的江湖
文章平均质量分 72
跃上青空
It's now or never
展开
-
python openpyxl 读取合并单元格的值
python使用openpyxl读取合并单元格的值转载 2022-08-30 16:29:40 · 5622 阅读 · 2 评论 -
selenium + pillow 通过元素截图出现错位
原因与解决方法windows电脑调过缩放与布局,方法一:将缩放比调回100%但这样会影响用户的使用体验,没准人家不用200%的缩放会死呢方法二:我们需要设置浏览器缩放:# 如缩放为200%时driver.execute_script('document.body.style.zoom="0.5"')获取电脑缩放比from win32 import win32api, win32gui, win32printfrom win32.lib import win32confrom win原创 2021-08-03 09:52:04 · 622 阅读 · 0 评论 -
爬了个小虫
爬了个小虫requests零之简介一之GET请求请求头的User-Agent字段伪装成浏览器,并用urlencode将中文转码放入get请求但实际上可以用params参数一并完成转码(requests封装的urlencode)url编码解码用unquoteGET的header参数=>各种请求头GET的cookies参数二之POST请求对比GET、POST发送post请求,模拟浏览器的登录行为requests.session()自动保存cookie请求体中url编码格式与json格式三之响应Respon原创 2021-03-11 21:40:58 · 625 阅读 · 1 评论 -
Luffy - 前台首页+轮播图
前台首页+轮播图一:首页搭建0. 根组件1. 小组件① `src/components`新建`Header.vue`② `src/components`新建`Footer.vue`2. 页面组件① `src/views`新建`ActualCourse.vue`② `src/views`新建`FreeCourse.vue`③ `src/views`新建`LightCourse.vue`④ `src/views`修改`Home.vue`3. 路由4. 效果展示二:轮播图1. 后台① `LuffyAPI/util原创 2020-12-25 20:28:28 · 478 阅读 · 0 评论 -
Luffy - Xadmin的使用
Xadmin的使用一:使用Xadmin1. 安装`xamdin`模块2. 在`dev.py`中注册`APP`3. 设置主路由替换掉admin:根路径的`urls.py`4. `apps/home`新建`adminx.py`5. 执行数据迁移6. 浏览器中查看:[http://127.0.0.1:8000/xadmin](http://127.0.0.1:8000/xadmin)一:使用Xadmin公司项目,一般都是有前台(主站)和后台(Xadmin)的前台后台≠前端后端,前后台可以用不同的语言来编原创 2020-12-25 08:26:24 · 386 阅读 · 0 评论 -
Luffy - 解决跨域问题
Luffy - 解决跨域问题一:跨域请求0. 跨域问题的出现1.同源策略① 简介2. CORS(跨域资源共享)简介3. `CORS`基本流程4. 解决跨域问题的3种方法5. `CORS`两种请求详解6. 浏览器对这两种请求的处理,是不一样的二:解决跨域问题(服务端)【简单请求】1. 原Django项目:`apps/user/views.py`2. 原Django项目:`apps/user/urls.py`3. 原Django项目:`dev.py`中注释掉`CSRF`4. 再创建1个Django项目(用另外的原创 2020-12-24 03:03:54 · 673 阅读 · 0 评论 -
Luffy - 后台配置
后台配置一:配置`media`目录1. 目录结构(新增了`media`)2. 在`LuffyAPI/LuffyAPI`下新建`media`文件夹3. `settings/dev.py`中添加二:创建、配置User表1. 安装`pillow`模块2. 创建User表对应的model3. `settings/dev.py`中添加如下代码4. 数据迁移三:配置基本路由1. **根路由`LuffyAPI/LuffyAPI/urls.py`**四:自定义配置1. 自定义全局异常① `utils`下创建`excepti原创 2020-12-23 20:58:10 · 273 阅读 · 0 评论 -
Luffy - 前台搭建
Luffy - 前台搭建一:创建项目二:配置1. 目录结构2. 文件解析① `App.vue`(初始)② `src/router/index.js`(初始)③ `src/main.js`3. 目录配置4. 安装、导入配置① 配置全局初始化`CSS`样式② `Axios` - 用于前后端交互③ `vue-cookies`④ `Element UI` - 饿了么团队开发的 1个好看的基于`Vue的UI`⑤ `JQuery`⑥ `popper.js`⑦ `Bootstrap`⑧ 配置全局自定义设置5. 整体`ma原创 2020-12-23 20:33:30 · 260 阅读 · 0 评论 -
luffy项目 - 后台搭建
一:环境准备pip换源http://www.xuexianqi.top/archives/275.html创建虚拟环境http://www.xuexianqi.top/archives/126.htmlpip导入、导出第三方依赖包http://www.xuexianqi.top/archives/277.html二:项目构建1. 虚拟环境 和 依赖准备① 创建虚拟环境LuffyAPImkvirtualenv LuffyAPI② 切换到虚拟环境LuffyAPIwork原创 2020-12-22 12:06:45 · 392 阅读 · 0 评论 -
drf续集之 - 多方式登录、批量操作
多方式登录DRF - 多方式登录DRF - 多方式登录用户可以以用户名、邮箱、手机号登录之前写的逻辑处理一般都是在视图类中,现在把逻辑拿到了序列化类的validate全局钩子中,在视图函数中 就无需写逻辑了,执行到.is_valid就会执行validate方法重点:视图类和序列化类之间交互数据的桥梁:context={}(是1个字典)自定义用户表,登录手动签发token,自定义的认证类认证通过,正常情况下查询得到当前登录用户...原创 2020-12-21 18:32:05 · 848 阅读 · 1 评论 -
drf续集之 - 自动生成接口文档、JWT
DRF - 自动生成接口文档1. 安装coreapipip install coreapi2. 配置models.pyfrom django.db import modelsclass Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=32) price = models.DecimalField(max_digits=6,原创 2020-12-20 02:57:17 · 540 阅读 · 2 评论 -
drf续集之 - 分页器、异常处理、封装Response
DRF - 分页器、异常处理、封装Response分页器一:分页器简介二:`PageNumberPagination` - 普通分页参数设置使用方式实例三:`LimitOffsetPagination` - 偏移分页参数例实例四:`CursorPagination` - 游标分页参数实例五:继承APIView - 最原始分页的使用实例异常处理一:异常二:自定义全局异常代码手动测试异常封装Response创建使用分页器一:分页器简介DRF内置了3种分页器分页器中文介绍PageNu原创 2020-12-20 01:51:30 · 501 阅读 · 1 评论 -
Vue - 组件化开发
Vue - 组件化开发零:单文件组件1. 简介2. `Hello.vue` 的简单实例:一:环境准备1.Node.js零:单文件组件1. 简介在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '})在每个页面内指定一个容器元素这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图但当在更复杂的项目中,或者你的前端完全由JavaScript驱动的时候,下面原创 2020-12-20 01:10:02 · 235 阅读 · 1 评论 -
Vue - Swiper
Vue - Swiper一:简介1. 简介2. 官网3. CDN二:实例1. 基础2. 制作成组件3. 自定义组件一:简介1. 简介Swiper常用于移动端网站的内容触摸滑动Swiper是纯javascript打造的滑动特效插件,面向手机、平板电脑等移动终端Swiper能实现触屏焦点图、触屏Tab切换、触屏多图切换等常用效果Swiper开源、免费、稳定、使用简单、功能强大,是架构移动终端网站的重要选择!2. 官网https://www.swiper.com.cn/3. CDN<原创 2020-12-19 07:09:31 · 360 阅读 · 2 评论 -
Vue - 组件
Vue - 组件一:组件化开发基础1.组件是什么?有什么用?2.组件的注册方式一:组件化开发基础1.组件是什么?有什么用?组件就是:扩展 HTML 元素,封装可重用的代码,目的是复用例如:有一个轮播图,可以在很多页面中使用,一个轮播有js,css,html组件把js,css,html放到一起,有逻辑,有样式,有html组件的分类:全局组件:可以放在根中局部组件:工程化开发之后:1个组件 就是1个xx.vue2.组件的注册方式① 定义全局组件,绑定事件,编写样式<!D原创 2020-12-17 23:26:50 · 167 阅读 · 0 评论 -
Vue - 与后端交互
Vue - 与后端交互零:与后端交互 - ajax版本1 - 出现了跨域问题版本2 - 解决了跨域问题版本3 - 后端读取json文件传到前端一:fetch1.简介2.实例二:Axios1.简介2.实例三:计算属性1.通过计算属性实现名字首字母大写2.通过计算属性重写过滤案例四:虚拟DOM 与diff算法 key的作用1.Vue2.0 v-for 中 :key 有什么用呢?2.虚拟DOM的diff算法3.具体实现思考:什么是跨域问题?如何解决?零:与后端交互 - ajax版本1 - 出现了跨域问题前端原创 2020-12-16 19:31:53 · 4657 阅读 · 0 评论 -
Vue - 生命周期
Vue - 生命周期一:生命周期图1.官网原图2.大佬的图二:生命周期1.bedoreCreate2.created3.beforeMount4.mounted5.beforeUpdate6.updated7.beforeDestroy8.destroyed一:生命周期图1.官网原图2.大佬的图二:生命周期1.bedoreCreate2.created3.beforeMount4.mounted5.beforeUpdate6.updated7.beforeDestroy8.des原创 2020-12-16 18:09:52 · 121 阅读 · 0 评论 -
Vue - 基础
Vue - 基础一:条件渲染二:列表渲染① `v-if+v-for+v-else`控制购物车商品的显示② `v-for`遍历数组(列表)、对象(字典)③ `key`值 的解释④ 数组更新与检测三:事件处理1.过滤案例2.事件修饰符3.按键修饰符四:数据双向绑定v-model的使用五:表单控制1.checkbox选中2.单选3.多选4.购物车案例 - 结算5.购物车案例 - 全选/全不选6.购物车案例 - 数量加减一:条件渲染指令释义v-if相当于: ifv-else相当于:原创 2020-12-15 18:35:14 · 217 阅读 · 0 评论 -
Vue - 入门
Vue - 入门前端的发展史一:Vue介绍 和 基本使用1.Vue介绍2.Vue特点3.M-V-VM思想4.组件化开发、单页面开发5.版本6.引入方式7.补充8.简单使用二:模板语法三:指令1.文本指令`v-html`:让`HTML`渲染成页面`v-text`:标签内容显示js变量对应的值`v-show`:显示/隐藏内容`v-if`:显示/删除内容2.事件指令3.属性指令四:Style 和 Class前端的发展史HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面原创 2020-12-14 19:47:53 · 211 阅读 · 0 评论 -
Django学习 day82之drf第六日
drf第六日一 权限源码分析二 模型层choice字段使用(重点)三 自定义频率类(分析,了解)四 内置频率类使用一 权限源码分析源码分析APIView的dispatch—》APIView的initial—》APIView的check_permissions(request)for permission in self.get_permissions(): # 权限类对象放到列表中if not permission.has_permission(request, self): self.p原创 2020-11-17 16:25:30 · 128 阅读 · 0 评论 -
Django学习 day80之drf第四日
drf第四日一 2个视图基类一 2个视图基类Django REST framwork(drf) 提供的视图的主要作用:控制序列化器的执行(检验、保存、转换数据)控制数据库查询的执行APIView:继承了原生Django的ViewGenericAPIView:继承了APIViewqueryset = models.Book.objects.all()serializer_class = serializer.BookModelSerializerget_queryset:获取配置原创 2020-11-15 04:04:22 · 209 阅读 · 0 评论 -
Django学习 day79之drf第三日
drf第三日一 修改,删除接口views.py 的cbv下serializer.py二 高级用法之source三 模型类序列化器四 高级用法之SerializerMethodField五 drf的请求与响应RequestResponse自己封装一个Response对象七 many=True源码分析,局部全局钩子源码解析一 修改,删除接口views.py 的cbv下 def put(self, request, id): # 通过id取到对象 res = {'cod原创 2020-11-13 00:02:52 · 194 阅读 · 0 评论 -
Django学习 day78之drf第二日
drf第二日一 restful规范二 APIview源码分析三 Request类分析四 序列化组件介绍五 序列化组件简单使用序列化的使用案例代码app下新建serializer.pymodels.py 随便弄了点表内字段views.pyurls.py六 序列化类字段类型和字段参数七 序列化器的保存功能八 序列化器的字段校验功能九 read_only和write_only一 restful规范Representational State Transfer:表征性状态转移Web API接口的设计风格,尤原创 2020-11-09 01:01:43 · 195 阅读 · 0 评论 -
Django学习 day76之BBS项目final day
BBS项目final day根评论功能es6语法补充前端评论列表评论框js代码后端(包含下一小节的子评论代码)二 子评论功能三 后台管理页面搭建backend/base.htmlbackend/backend_index.html后台四 富文本编辑器使用五 新增文章,处理xss攻击六 富文本编辑器上传图片js后端七 修改头像后台前端八 修改密码前端后端九 删除文件,修改文章十 邮件通知(django中发送邮件)根评论功能es6语法补充js中 es6语法,反引号的用法:var content='sb'原创 2020-11-08 16:37:37 · 224 阅读 · 0 评论 -
Django学习 day75之BBS项目day4
BBS项目day4一 侧边栏展示三个分组查询根据年月分组的分析过程一 侧边栏展示三个分组查询# 按分类查询文章数res_category =models.Category.objects.filter(blog=user.blog).annotate(num=Count('article__id')).values_list('name', 'num', 'id')# 按标签查询文章数res_tag =models.Tag.objects.filter(blog=user.blog).anno原创 2020-11-08 03:37:13 · 717 阅读 · 0 评论 -
Django学习 day74之BBS项目day3
BBS项目day3一 首页页面搭建(轮播图)前端js后端二 admin后台管理路由admin.py中注册setting中配置国际化表名显示中文字段显示中文字段下方的提示文本(不影响数据)一行行数据显示中文blank三 首页文章显示后台前台四 media及头像显示五 图片防盗链六 个人站点文章显示路由视图页面一 首页页面搭建(轮播图)前端<div class="lbt"> <div id="carousel-example-generic" class="carousel sl原创 2020-11-06 00:12:16 · 284 阅读 · 0 评论 -
Django学习 day73之BBS项目day2
BBS项目day2一 服务器保存文件父路径二 注册功能错误渲染三 用户名变化校验视图函数js代码一 服务器保存文件父路径例如昨天的头像上传,使保存到的文件夹都处在父路径之下models.py中不需要动avatar = models.FileField(upload_to='avatar/', default='avatar/default.png')settings.py中配置MEDIA_ROOT=os.path.join(BASE_DIR,'media')# 由于FileField会自动保原创 2020-11-03 20:42:11 · 166 阅读 · 0 评论 -
Django学习 day72之BBS项目day1
BBS项目day1一 博客项目需求二 bbs项目表设计表设计(8张)表关系表中字段三 数据库表创建及同步子评论如何关联父评论?:自关联四 注册form组件编写五 注册功能页面搭建一 博客项目需求-多人博客-博客首页-登录:图片验证码-注册:上传头像-自己有自己的个人站点(根据分类,标签,时间,过滤文章)-自己的后台管理 -发表博客(富文本编辑器,xss攻击处理) -查看,删除-文章分类-随笔档案-文章标签-文章-文章详情-评论(根评论,子评论,被评论时邮件通知)-点赞点原创 2020-11-02 21:12:19 · 210 阅读 · 0 评论 -
Django学习 day71之将狗第十七日之auth组件与中介模型
Django之auth组件一 auth组件介绍二 内置属性方法注意:需要在数据迁移以后使用哦,为了创建用户各种表导入语句:from django.contrib import authauthenticate:用户认证loginlogout一 auth组件介绍我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,内置了强大的用户认证系统–auth,是一个app二 内置属性方法注意:需要在数据迁移以后使用哦,为了创建用户各种表导入语句:from django.contrib impor原创 2020-10-29 21:12:57 · 242 阅读 · 0 评论 -
Django学习 day70之Django第十六日
Django第十六日一 django的session原理流程二 自定义中间件三 process_request,process_response,process_view,process_exception四 CSRF_TOKEN跨站请求伪造一 django的session原理流程二 自定义中间件自定义步骤:写一个类,继承MiddlewareMixin,导入语法:from django.utils.deprecation import MiddlewareMixin里面写方法process_r原创 2020-10-25 20:16:28 · 167 阅读 · 0 评论 -
Django学习 day69之Django第十五日
Django第十五日from前传 form组件校验源码一 django中cookie的使用2 django中操作cookie3 带签名的cookie(加盐,加密)二 cookie版登陆校验路由视图函数模板login.htmlorder.htmluserinfo.html三 django中session的使用四 django中session的配置五 cbv加装饰器总结:两种用法六 中间件前传from前传 form组件校验源码读的入口是:form.is_valid()--->self.errors(原创 2020-10-23 21:45:05 · 163 阅读 · 0 评论 -
Django学习 day68之Django第十四日
Django第十四日一 froms渲染错误信息视图函数模板二 forms组件参数配置定制模板中的显示样式,及配置类 语法错误信息中文显示语法三 局部钩子和全局钩子局部钩子的使用局部钩子全局钩子四 cookie session token五 django中cookie的使用一 froms渲染错误信息视图函数from app01 import MyFormdef register(request): if request.method=='GET': form=myforms.M原创 2020-10-22 20:57:04 · 208 阅读 · 0 评论 -
Django学习 day67之Django第十三日分页器与form组件
分页器与form组件一 分页器组件介绍二 分页器的简单使用Paginator对象的属性和方法页对象的属性和方法注意!!设置表模型中默认以id排序,不然会有警告视图函数中模板中三 分页器的进阶使用逻辑分析视图函数模板文件四 forms组件介绍五 forms校验字段功能六 forms渲染模板功能视图函数模板一 分页器组件介绍项目数据量大了以后,比如涉及到分页,一页一页的加载显示django中分页器组件,把分页常用的东西,封装到一个类中实例化得到一个对象,对象里有属性和方法二 分页器的简单使用Pa原创 2020-10-21 20:29:35 · 130 阅读 · 0 评论 -
Django学习 day66之Django与Ajax第十二日
Django与Ajax第十二日一 ajax介绍二 ajax的简单使用三 ajax上传文件四 ajax提交json格式五 django内置序列化器(了解,不好用,后面有更好的)一 ajax介绍异步 Javascript 和 XML:-异步:跟同步是对应的-javascript:通过javascript来操作,发送请求 ,到服务端-xml:数据交互使用xml,现在主流使用json格式-xml:可阅读性比较高,解析复杂,占的空间大lqz19-json:可阅读性比较高,解析简单,占的空间小{原创 2020-10-19 22:55:29 · 176 阅读 · 2 评论 -
Django学习 day65之Django第十一日
Django第十一日一 聚合查询二 分组查询重点语法注意:三 F和Q查询Q查询:制造 与或非的条件Q查询:制造 与或非的条件一 聚合查询引入聚合查询(聚合函数:最大,最小,和,平均,总个数)from django.db.models import Avg,Max,Min,Count,Sum聚合方法之:aggregate,与各种案例aggregate()是QuerySet 的一个终止子句,意思是说,它返回一个包含一些键值对的字典。键的名称是聚合值的标识符,值是计算出来的聚合值。键的名称是按照字原创 2020-10-16 01:22:16 · 151 阅读 · 0 评论 -
Django学习 day64之Django第十日
day58之Django第十日一 多表操作之模型创建二 一对多添加记录案例总结:三 多对多专用 添加记录,修改,删除四 基于对象的跨表查询(正向反向)跨表查询有两种方式基于对象的跨表查询五 基于双下划线的跨表查询连表查询基于双下划线的跨表查之 一对多六 进阶连续跨表查询八 扩展一 多表操作之模型创建图书表:Book,作者表:Author,作者详情表:AuthorDetail,出版社表:Publish,(第三张中间表)作者跟作者详情:是一对一,关联字段写在哪一方都可以图书跟出版社:是一对原创 2020-10-15 19:56:35 · 153 阅读 · 0 评论 -
Django学习 day63之Django第九日
Django第八日模型层models一 常用和非常用字段、参数概览常用字段非常用字段常用参数元数据(必须记住)二 打印原生sql三 查询单表记录API模型层models一 常用和非常用字段、参数概览常用字段IntegerField 整数AutoField 自增BooleanField 布尔CharField varcharDateField 年月日DateTimeField 年月日时分秒DecimalField 小数FileField 上传文件,本质是varchar原创 2020-10-13 19:47:01 · 190 阅读 · 0 评论 -
Django学习 day62之Django第八日
Django第八日模板层template一 自定义标签和过滤器自定义过滤器自定义标签二 模板的导入和继承三 静态文件相关三 inclusion_tag的使用模型层model一 字段和字段参数介绍二 单表增加三 单表查询(入门)模板层template一 自定义标签和过滤器自定义过滤器第一步:注册app——在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的filter第二步:在app中创建templatetags包(包名只能是templatetags,原创 2020-10-12 21:33:39 · 121 阅读 · 0 评论 -
Django学习 day61之Django第七日
Django第七日一 了解cbv的本质,同时练习阅读源码的能力二 前后端交互编码方式三 django模板使用的两种方式四 模板语法之变量五 模板语法之深度查询句点符六 模板渲染成标签还是原封不动的字符串七 过滤器(default,length,filesizeformat,date,slice,truncatechars,safe)了解八 标签(for,for ... empty,if,with,csrf_token)一 了解cbv的本质,同时练习阅读源码的能力请来了,路由匹配成功执行 path('i原创 2020-10-11 23:08:41 · 143 阅读 · 0 评论 -
Django学习 day60之Django第六日
Django第六日一 视图层之请求对~二 视图层之响应对象三 cbv和fbv写视图类cbv流程(还是写在views.py中)文件上传要注意html编码方式views.py 中保存文件的代码四 form表单,提交地址顺便提一嘴之Pycharm的自动提示一 视图层之请求对~view.pydef index(request): ''' request:django封装的对象,它的类是WSGIRequest,它里面包含了所有http请求的东西 ''' print(request原创 2020-10-11 16:27:00 · 148 阅读 · 0 评论