自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 django项目、vue项目部署云服务器

8.如果出现报错,比如安装mysqlclient模块容易报错,那么我可以打开requirements.txt,将mysqlclient模块那一行注释掉(#)1.修改django的某些关于ip地址的配置(数据库等ip地址不用改,因为就是本地的ip地址,当在服务器上运行时,连接的就是服务器的数据库)1.修改前端向后端发ajax请求的地址,以前都是向127.0.0.1发送请求,现在可以改成服务器地址了。uwsgi是符合wsgi协议的web服务器,使用c写的性能高,上线要使用uwsgi。

2022-12-09 18:11:01 541 1

原创 SQL alchemy使用

SQLAlchemy是一个基于Python实现的ORM框架。独立的orm框架,可以轻松的集成到任意项目中去。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。Engine,框架的引擎Connection Pooling ,数据库连接池Dialect,选择连接数据库的DB API种类Schema/Types,架构和类型SQL Exprression Language,SQL表达式语言。

2022-12-09 18:09:10 2003

原创 Docker容器

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

2022-12-09 18:08:22 1491

原创 RabbitMQ介绍与python操作RabbitMQ

MQ:消息队列,就是基础数据结构中的先进先出的一种数据结构。像生活中买东西,需要排队,先排的人先买消费,就是典型的先进先出。Linux安装# 安装erlang# 安装RabbitMQwindows安装【Windows安装RabbitMQ详细教程】_慕之寒的博客-CSDN博客_rabbitmq安装windowsdocker安装# 拉取镜像# 启动,设置用户名为admin,密码为admin# 访问服务器的15672端口。

2022-12-09 18:06:25 534

原创 基于Docker做MySQL主从搭建与Django的读写分离

主从的作用:写数据数据时使用主库,从库只用来读数据,这样做能够减少数据库压力,主从搭建可以一主一从,也可以是一主多从。1.master会将变动记录到二进制日志(binlog)里面(主库要开启binlog日志);3.slave有一个I/O线程把master发送的二进制写入到relay log日志里面;4.slave有一个SQL线程,按照relay log 日志处理slave的数据;第二步:创建一些文件夹,存放MySQL配置。第三步:启动两个docker容器。第一步:拉取MySQL镜像。第一步:配置文件配置。

2022-12-09 18:05:51 547

原创 Django连接MySQL与正反向迁移命令

第二步:在项目同名的文件夹内的__init__.py或者应用名的文件夹内的__init__.py下添加固定代码。如果使用mysqlclient模块就不需要添加任何代码。找到对应自己python解释器版本的whl文件。最后把下载的whl文件拖入安装。然后打开终端进入项目目录:输入。

2022-12-09 18:04:25 633

原创 python操作redis

其实一旦配置文件配置 CACHES 后,django的缓存框架(默认是内存)存储的位置也会变成redis。redis 不支持事务,只有管道的操作,多个命令放到一个管道中,然后一次性执行,要么都成功,要么都失败。String操作,redis中的String在在内存中按照一个name对应一个value来存储。List操作,redis中的List在在内存中按照一个name对应一个List来存储。使用django自带的缓存方法强大之处在于不需要关注设置的类型,直接设置就行。redis的通用操作,跟类型无关的操作。

2022-12-09 17:59:49 305

原创 Redis高级

redis 是什么是一个软件(用c语言写的,初级版本代码只有1w多行 7.x,公司 5.x,4.x多)非关系型(没有外键关联关系)数据库,nosql(not only sql)数据库数据都放在内存中key-value形式存储有5大数据类型:string(字符串)、list(数组/列表)、set(集合)、zset(sorted set,有序集合)、hash(哈希类型/字典)redis 好处速度快,因为数据存在内存中,类似于python的字典的优势就是查找和操作的速度快。

2022-12-09 17:58:20 540

原创 Flask 框架

python web框架Django:大而全(3.x以后支持异步)flask:小而精,插件的支持异步框架:Sanic、FastAPIflask介绍。

2022-12-09 17:55:02 1615

原创 爬虫之Scrapy架构

目录Scrapy架构介绍Scrapy下载Scrapy基本使用Scrapy目录结构Scrapy解析数据settings相关配置基础配置增加爬虫的爬取效率去重规则(布隆过滤器)持久化方案(数据保存)request和response传递参数网页解析下一页继续爬取爬虫和下载中间件加代理,cookie,header,集成seleniumscrapy-redis实现分布式爬虫Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可

2022-12-06 17:29:14 464

原创 爬虫之selenium

目录selenium介绍基本使用selenium用法元素操作等待元素被加载元素各项属性执行js代码切换选项卡浏览器前进后退无界面浏览器xpath的使用简单介绍selenium中使用异常处理登录获取cookie保存动作链打码平台使用(验证码破解)由于requests模块不能执行js,有的页面内容,我们在浏览器中可以看到,但是请求下来没有。selenium模块:模拟操作浏览器,完成人的行为。selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持

2022-12-06 17:28:01 2061 1

原创 爬虫之BeautifulSoup4

目录BeautifulSoup4介绍bs4 遍历文档树bs4搜索文档树CSS选择器使用requests模块爬取网页数据时,获取到的是html(xml)内容,比较复杂,不容易获取到想要的数据。而BeautifulSoup4就是用于对html,xml进行解析(修改)。安装:基本语法: 解析器 使用方法 优势 劣势 Python标准库 Python的内置标准库 执行速度适中 文档容错能力强 Python 2.7.3 o

2022-12-06 17:26:53 446

原创 python实现支付宝

但是要注意,支付宝是无法向我们的http://127.0.0.1:8000发送请求的,这是只有我们自己才能访问的地址,所以这里需要填公网ip,也就是需要租一台服务器,让支付宝可以向这个服务器发送请求。支付宝支付成功后,会向我们写的地址,也就是上面写的参数。支付成功后,会跳转到代码中写的地址(访问支付链接,用沙箱账户登录支付。第三步:配置公钥私钥。

2022-11-20 21:54:20 1506

原创 视频托管--七牛云

在main.js导入在某个组件中导入(script标签)template标签中js。

2022-11-20 21:44:50 264

原创 celery介绍

2, celery服务为为其他项目服务提供一部解决任务的需求’ ## 会有两个服务同时运行,一个是项目服务,一个是celery服务, 项目服务讲需要异步处理的任务交给celery服务 , celery就会在需要时一步完成项目的需求。事件: 像后端秒杀接口发送请求, 发送完立马起一个定时任务, 每隔5秒,像后端查看一下是否秒杀成功, 如果没成功,定时任务继续执行, 如果成功,清空定时任务。定时更新,保持了一致。1, 写一个main.py: 实例化得到app对象, 写函数,任务,注册成celery的任务,

2022-11-18 16:30:56 2731 1

原创 Redis简单介绍

redis是一款非关系型的nosql数据库【存数据的地方,使用内存存储,速度非常快, 可以持久化存储数据数据【从内存同步到硬盘】。数据类型丰富【5大数据类型:字符串,列表,哈希(字典),集合,有序集合】,以key-value形式存储【根本没有表的结构,相当于咱们的字典】-nosql:指非关系型数据库:1 不限于SQL 2 没有sql。

2022-11-14 15:54:05 494

原创 xss(Cross Site Scripting)

反射性XSS的原理是:反射性xss一般指攻击者通过特定的方式来诱惑受害者去访问一个。包含恶意代码的URL。当受害者点击恶意链接url的时候,恶意代码会直接在受害者的主机上的浏览器执行。反射性XSS又可以叫做非持久性XSS。

2022-11-07 19:12:42 842

原创 CSRF 跨站请求伪造攻击

下图大概描述了 CSRF 攻击的原理,可以理解为有一个小偷在你配钥匙的地方得到了你家的钥匙,然后拿着要是去你家想偷什么偷什么。

2022-11-07 19:11:19 807

原创 Git操作

1)有红色信息(工作区有内容),就执行 add2)全绿信息(内容全部在暂存区),才执行 commit3)只有被版本库控制的代码,才能被监听,所以可以回滚到任何一个版本"""安装1.下载对应版本:2.安装git:在选取安装路径的下一步选取Use a TrueType font in all console windows 选项基础命令将已有的文件夹 - 初始化为git仓库>: cd 目标文件夹内部>: git init在指定目录下 - 初始化git仓库。

2022-11-07 18:38:43 263

原创 django中的跨域问题以及解决策略

CORS是一个W3C标准,全程跨域资源共享。它允许浏览器向跨源的后端服务器发出ajax请求,从而克服了AJAX只能同源使用的限制。实现CORS主要一开后端服务器响应数据中设置响应头信息返回的CORS需要浏览器和服务器同时支持, 目前除了IE浏览器都支持该功能整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。

2022-11-07 18:26:49 7673

原创 luffy配置相关

每个项目都需要记录日志这么做的目的是为了:后期可以通过日志排查问题分析错误,分析用户的行为django的logger是基于原生的logging模块封装的在项目中集成日志1. 复制代码到配置文件2. 在utils中新建common_logger.py3. 在需要的地方导入使用即可【注意路径】 直接使用logger.info。

2022-11-04 23:06:23 335

原创 Vue3版本

在 Vue 应用的概念中,“组合式函数”(Composables) 是一个利用 Vue 的组合式 API 来封装和复用有状态逻辑的函数。相比之下,有状态逻辑负责管理会随时间而变化的状态。一个简单的例子是跟踪当前鼠标在页面中的位置。在实际应用中,也可能是像触摸手势或与数据库的连接状态这样的更复杂的逻辑。

2022-11-03 22:48:32 1216

原创 luffy前传

B2C 直销商城 商家与会员直接交易 ( Business To Customer )B2B 批发商城 商家与商家直接交易B2B2C 购物平台 商家和会员在另一个商家提供的平台上面进行交易C2B 定制商城 会员向商家发起定制商品的需求,商家去完成。O2O 线上线下交易平台C2C 二手交易平台社交网络资讯论坛内部系统个人博客内容收费站第一步:打开文件资源管理器,地址栏输入:%APPDATA%%APPDATA%可以快速到 C:\Users\电脑用户\AppData\Roaming下第二步:创建pip文件夹,并在

2022-11-03 22:34:01 135

原创 Vuex,Vue-router

Vuex是一个专门为Vue.js应用程序开打的状态管理模式。它采用集中式存储管理应用的所有组件的状态, 并以相应的规则保证状态以一种可以预测的方式发生变化, Vuex也集成到Vue的官方调试工具devtools extension (opens new window),提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

2022-11-02 18:10:26 581

原创 Vue插件

后退前进

2022-11-02 17:11:34 589

原创 MySQL梳理

MySQL字段类型,约束条件。MySQL建库/表/记录。MySQL存储引擎/过程。MySQL基本操作语句。MySQL单/多表关系。MySQL单/多表查询。MySQL查询关键字。MySQL索引》》树。

2022-11-01 19:12:27 275

原创 Vue-CLI项目搭建

在之前的vue学习中,都是在html中编写的,但是在一个vue项目中,都是以vue后缀的文件编写组件的。创建vue项目需要node.js环境,node.js是一款后端语言。

2022-10-31 16:59:40 334

原创 vue组件

全局组件局部组件 `,data() {return {}},}},}//局部组件我是part组件

2022-10-30 22:33:15 125

原创 Vue生命周期

每个vue实例在被创建时都要经过一些列的初始化过程----需要设置数据监听,编译模式,将实例挂载到DOM并在数据变化时更新DOM等情况下需要使用。同时在这个过程中也会运行一些叫做生命周期狗仔的函数, 这给用户在不同阶段添加自己的代码的机会。组件创建,开启定时任务,定时打印hello,在destoryed中对定时器进行销毁。

2022-10-29 22:53:08 278

原创 Vue基础使用

数组的内置过滤方法filter:参数是一个箭头函数,每次从数组中取一个值,函数返回true就保留该值,返回false就丢弃该值。v-bind:属性名='变量' 简写成 》》 v-bind:属性名='变量' :属性名="变量"1 for(i=0;小补充:es6 对象写法》》 v-on:事件名='函数' 简写成 @事件名='函数'被vue托管的标签中可以写 {{}} 中可以写:变量,js简单的表达式,函数。事件绑定 v-on:事件名='函数'---》@事件名='函数'

2022-10-25 23:39:54 9932

原创 Vue基础介绍

Vue.js - 渐进式 JavaScript 框架 | Vue.jsvue是一套用以构建用户界面的渐进式框架, 与其他大型框架不同的是, vue还被设计为可以自底向上逐层应用, vue的核心库只关注视图层, 容易上手,且便于第三方库既有香米整合。因其是渐进式框架, 我们可以一点一点地使用它,只用一部分,也可以整个工程都使用它。他只有20kbmin +gzip运行大小, 超快虚拟dom,非常灵活的生态系统, 可以在一个库和一套完整框架之间自如伸缩。

2022-10-24 20:39:43 298

原创 django梳理

django概述,方便自己查看。

2022-10-20 21:57:03 462 1

原创 RBAC的介绍和快速使用

这就极大地简化了权限的管理, 这样管理都是层级相互依赖的, 权限赋予给角色,儿把角色又赋予用户,这样的权限设计很清楚,管理起来也方便。本来是5张表,django是6张表,用户和权限的多对多关系表【一个用户可以分配多个权限,一个权限可以给多个用户】权限是授予角色【部门】的,一个个角色,就是一条条记录【开发,hr,股东】权限与角色相关联, 用户通过成为适当角色的成员而得到这些角色的权限。用户表,角色表,权限表,用户和角色关联表,角色和权限关联表。角色和权限》》多对多,有一个中间表。现在已经有了5张表》》

2022-10-14 20:30:25 1363 1

原创 验证token,X_FORWARDED_FOR ,集群,分布式

import jwt# 验证token是否合法,jwt模块下验证token的函数try:# 执行到这里说明token合法,payload可以使用。

2022-10-13 16:49:59 374

原创 JWT认证

上面我们都是基于auth_user表去做签发认证的,但是我们日常基本程序都是自定义的表来做认证,所以我们来试试自定义user表models.pyviews.py# # 登录后才能访问,加一个认证类,# # 使用jwt提供的认证类必须要配合权限类使用## 自定义的用户签发tokentry:# 根据user签发token【三部分,头,荷载,签名】# 使用jwt模块签发token的函数,生成token。

2022-10-12 23:23:23 1580

原创 cookie, session 与 token --JWT

我们浏览网页的时候,经常会看到弹窗》》本网站使用了cookie, 以及当我们注册登陆了某些网站的时候,浏览器也会提示我们是否保存个人信息。这里其实就是TCP/IP协议里的应用层中的http协议。此协议的特性是无状态》》》 它不对之前发生过的请求和响应的状态进行管理。也就是说每一次客户端发送的请求都是新的请求。在这种情况下,每一次想要查看某个网站都需要你进行登录,相当的麻烦。虽然无状态的特性减轻了服务器的CPU以及内存资源的消耗。

2022-10-12 22:01:38 649

原创 drf小练习——使用django_filters写模糊查询

【代码】drf小练习——使用django_filters写模糊查询。

2022-10-11 22:36:13 662

原创 面试问题回答集锦

在写xx接口的时候, 因为我们过滤的条件很多, 搜索数据库就变得很慢, 写了很多搜索类,之前的时候搜索的排序是随意的, 没有什么先后顺序, 后来读了drf搜索类的源码之后, 发现执行顺序是从左往右执行的, 我就想到了最左侧的搜索类是被最快搜索道德, 并且过滤掉的数据是最多的, 后续再去搜索就会变得很快, 所以我调整了一下搜索类的配置顺序,就发新了这个接口的效率确实提高了不少。问 : 在工作中遇到注入多个分类排序的接口情况,如何解决?

2022-10-11 21:27:22 31

原创 DRF自动生成接口文档

1,单一方法的视图,可以直接使用类视图的文档字符串"""返回所有图书信息."""2, 包含多个方法的视图, 在类视图的文档字符串中,分开方法定义'''list 返回所有图书信息create 新建图书'''3,对于视图集ViewSet,仍在类视图的文档字符串中分开定义,但是应使用action名称区分"""list:返回图书列表数据retrieve:返回图书详情数据latest:返回最新的图书数据read:修改图书的阅读量"""

2022-10-11 21:05:00 189

原创 Django配置文件介绍

允许项目部署的地址(后期项目上线,这里写服务器的地址),debug是False,这个必须加,不加就报错。# 后期项目项目上线,uwsgi运行这个application,测试阶段使用manage.py 运行项目。# 如果是True,项目是调试模式,好处是抛异常在浏览器直接能看到,如果路径不存在,也会提示有哪些路径。# 密钥,自动生成的,很复杂,django中涉及到加密的都使用它,没有不行。# 所有的app,django大而全,就是因为它提供了很多内置的app。# auth的认证相关。

2022-10-11 20:46:57 802

空空如也

空空如也

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

TA关注的人

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