每 天 早 睡
不积跬步,无以至千里;不积小流,无以成江海
展开
-
45--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-纯手工安装部署和docker一键部署
xshell---->收费,免费finalshell---->国人用java开发的web端---->云服务器web端也可以连接这里我使用的是MobaXterm,输入用户名密码linux 操作系统都会有python2系统服务用python2 写的,必须要有项目跑在python3,额外安装(阿里云装了python3.6)我们再装一个:python3.8执行python3.8执行pip3.8。原创 2023-06-11 18:27:22 · 1076 阅读 · 1 评论 -
44--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-支付宝二次封装、支付成功页面以及后台设计
需求:购买课程,付款现在主流支付有支付宝支付、微信支持、银联支付申请使用支付宝支付,需要有商户号(用户把钱付款到你的商户号中)支付宝沙箱环境实名认证一下---->看到沙箱环境---->账号、密码、支付密码下载app后(能看到9000多万现金,只支持安卓)支付宝支付的流程:咱们网站点击立即购买---->跳转到支付宝支付页面---->手机扫码(手动输入用户名密码)---->把钱付给了支付宝(你商户中了)---->跳转回咱们自己的网站支付成功页面---->支付宝会回调我们的地址,携带订单号,我们的项目原创 2023-06-11 01:11:25 · 775 阅读 · 0 评论 -
43--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-课程详情页面、搜索页面以及后台设计
0 课程列表页,跳转到课程详情---->携带课程id号。原创 2023-06-10 22:48:41 · 1195 阅读 · 0 评论 -
42--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-实战课页面以及后台设计
二、课程表分析(创建课程相关表)1.分析有三种课程,免费课、实战课、轻课如果建成一张表,使用课程类型区分不同课程我们的设计,一类课程,一张表只以实战课表为例:课程分类表(跟课程一对多,一个分类对应多门课程)老师表(跟课程是一对多,一个老师对应多门课程)章节表 (跟课程一对多,一个课程对应多个章节)课时表(跟章节是一对多,一个章节,多个课时)2.设计utils目录下的model.py文件,继承BaseModelcd到luff_api/apps目录下执行python manage.py sta原创 2023-06-10 18:27:34 · 1794 阅读 · 0 评论 -
41--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-Django集成Celery实现定时任务(定时更新首页轮播图)
第一次访问查数据库,拿到数据,放到缓存(redis),以后再访问,直接从redis中能够获取。如果不加缓存,每次用户访问首页,都去查一次数据库,对数据库压力大。缓存穿透,缓存击穿,缓存雪崩问题(下面博客会讲)解决redis缓存和mysql数据不同步问题。原创 2023-05-07 23:35:47 · 542 阅读 · 0 评论 -
40--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-腾讯云短信二次封装、注册页面
4.注册是写入数据库,反序列化,mobile和password需要设置write_only,如果不在序列化设置,需要把CreateModelMixin中create方法拿到自己的create方法中。2.手机号注册,mobile作为用户名,需创造一个username字段存放mobile。在lib目录下创建tx_sms目录,再创建sms.py文件(腾讯云短信V2源码)3.重写create方法,密码是明文的,需要使用create_user创建用户。2.想更改字段的属性,需要重写;还有,不是表的字段,必须重写。原创 2023-04-24 01:48:41 · 763 阅读 · 1 评论 -
39--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-多方式登录功能
1、关系型,非关系型关系型数据库:mysql,oracle,db2,postgresql,sqlite,sqlserver,国产:达梦非关系型数据库(nosql):redis,mongodb,es:文档型存储,key-value2、redis:key-value存储的数据库5大数据类型:string(字符串)、list(列表)、set(集合)、zset(sorted set–有序集合)和hash(哈希类型,字典)内存存储,都在内存中,重启就没了(没有做持久化)原创 2023-04-23 01:22:47 · 580 阅读 · 0 评论 -
38--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-前台首页设计
设计Header组件,Footer组件,轮播图组件在Home页面组件中引入组件轮播图组件,发送ajax请求。原创 2023-04-06 00:46:49 · 788 阅读 · 0 评论 -
37--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-后台主页模块设计
1.在settings.py文件夹下新建user_setting.py轮播图显示的条数。原创 2023-04-06 00:27:07 · 667 阅读 · 0 评论 -
36--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-前台项目准备
使用axios,elementui,bootstrap,jquery。3.配置全局css,在assets/css/global.css。4.配置全局assets/js/settings.js。配置jquery:vue.config.js。配置bootstrap:main.js。4、bootstrap页面组件框架。安装:前端项目目录下的终端。安装:前端项目目录下的终端。安装:前端项目目录下的终端。安装:前端项目目录下的终端。,在main.js引入。main.js中使用。配置:main.js。原创 2023-04-05 22:18:48 · 958 阅读 · 0 评论 -
35--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-封装日志、全局异常、封装Response对象
pypi地址下载---->whl文件注意:第三方模块区分python解释器版本,操作系统版本安装第三方模块安装不上,有五种办法:第一种:安装AnacondaAnaconda:Python发行版本,其包含了conda、Python等180多个科学包及其依赖项第二种:使用whl文件安装(常用)原创 2023-04-05 21:18:49 · 691 阅读 · 0 评论 -
34--Django-项目实战-全栈开发-基于django+drf+vue+elementUI企业级项目开发流程-环境准备
基于mysqldb做了---->mysqlclient即支持python2,又支持python3,无缝支持django,这个模块可能装不上(linux,win)基于mysqldb做了---->pymysql即支持python2,又支持python3,不支持django,需要改源码。django操作mysql,底层用的mysqldb模块,在python2可以用,3.x不维护了。5.项目如果要顺利跑,配置路径得正确---->修改配置文件路径。3.技术选型,架构设计,数据库设计,分任务开发。原创 2023-04-05 16:49:59 · 1458 阅读 · 0 评论 -
33--Vue-前端开发-使用Vue脚手架快速搭建项目
node的安装:官方下载,一路下一步node命令类似于pythonnpm命令类似于pip使用npm安装第三方模块,速度慢一些,需换成淘宝镜像以后用cmpm代替npm的使用安装脚手架:创建vue项目:可以通过命令行创建,也可通过图形化界面的创建命令行:界面:找一个空目录,选择包管理器npm选择手动配置勾选依赖功能选择vue版本创建项目成功后页面祝贺,你已创建第一个Vue项目!注意:以后写代码,都在src写,其它地方一般不动。index.js相当于python中的_原创 2023-03-11 00:12:29 · 562 阅读 · 0 评论 -
32--Vue-前端开发-Vue语法之组件化开发
购物车的例子eg1:计算商品价格(掌握对象的迭代方法)eg2:全选全不选实现(掌握v-model的使用)eg3:自由选择商品计算价格(掌握v-for用法和自增自减)二、v-model进阶lazy:等待input框的数据绑定时区焦点之后再变化number:数字开头,只保留数字,后面的字母不保留;字母开头,都保留trim:去除首位的空格三、生命周期钩子方法含义beforeCreate创建Vue实例之前调用created创建Vue实例成功后调用(可以在此处发送异步请原创 2023-03-10 22:35:14 · 1247 阅读 · 0 评论 -
31--Vue-前端开发-Vue语法
1.前端介绍1、HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面 ----> 给后端(PHP、Python、Go、Java) ----> 后端嵌入模板语法 ----> 后端渲染完数据 ----> 返回数据给前端 ----> 在浏览器中查看2、Ajax的出现 -> 后台发送异步请求,Render+Ajax混合3、单用Ajax(加载数据,DOM渲染页面):前后端分离的雏形。原创 2023-02-26 22:44:46 · 414 阅读 · 0 评论 -
30--Django-后端开发-drf之RBAC表分析、simple-ui的使用、JWT签发认证的源码分析
1.自定义User表实现jwt的token签发views.py。原创 2023-02-15 01:27:25 · 767 阅读 · 0 评论 -
29--Django-后端开发-drf之JWT使用、过滤分页源码分析
1.过滤源码1、查询所有才涉及到过滤(视图类必须继承:+)2、在视图类中配置:3、执行过滤类中的:方法,在方法中完成过滤,排序4、查询所有---->执行的是---->get---->list(ListModelMixin)5、----->list方法6、视图类的的:7、自定义的过滤类,重写方法完成过滤---->配置在视图类中,就可以执行总结:视图类中配置类属性:必须继承他俩的list方法中执行了视图类找方法2.分页源码1、查询所有才涉及到分页(视图类必须继承:+)2、在视图类中配置:3、查原创 2023-02-14 22:17:48 · 629 阅读 · 0 评论 -
28--Django-后端开发-drf之自定义全局异常、接口文档生成以及三大认证源码分析
1.定义一个函数def common_exception_handler(exc , context) : # 加入日志的逻辑 response = exception_handler(exc , context) if response : return Response(data = {'code' : 9999 , 'msg' : '服务器异常,请联系系统管理员' })2.在配置文件settings.py中配置源码:项目目录中新建exceptions.py# 全局异常 """1 写个函数。原创 2023-02-13 23:26:14 · 382 阅读 · 0 评论 -
27--Django-后端开发-drf之频率限制、过滤排序、分页功能
views.py。原创 2023-02-11 02:22:55 · 674 阅读 · 0 评论 -
26--Django-后端开发-drf之路由、认证与权限用法
1、自定义认证类,要继承BaseAuthentication,重写authenticate,如果认证通过,返回两个值,如果认证失败,抛认证失败的异常。2、update_or_create方法:把随机字符串存入表,UserToken表,如果存在,就更新token,如果不存在,就新增。2、继承BasePermission,重写has_permission,如果有权限,就返回True,没有权限就返回False。注:如果全局使用了认证类,登录接口需要局部禁用掉!在项目目录中新建auth.py文件。原创 2023-01-16 01:35:04 · 519 阅读 · 0 评论 -
25--Django-后端开发-drf视图组件之2个视图基类、5个视图扩展类以及视图集
序列化器(serializer.py)拿书和出版社的模型来举例。原创 2023-01-06 01:03:31 · 455 阅读 · 0 评论 -
24--Django-后端开发-drf序列化类之请求与响应以及序列化类源码分析
ser.is_valid---->BaseSerializer的is_valid---->self._validated_data = self.run_validation(self.initial_data)---->是哪个类的run_validation?---->不是Field类的,而是Serializer类的。注:查找顺序是先找视图类局部---->项目配置文件中---->drf的配置文件。data:要返回的数据,放到了http响应的响应体中。2.响应显示的格式的局部配置和全局配置。原创 2023-01-05 23:07:09 · 335 阅读 · 0 评论 -
23--Django-后端开发-drf序列化类之Serializer、ModelSerializer和全局局部钩子
BookSerializer---->Serializer---->BaseSerializer---->save的核心代码。validators 该字段使用的验证器(写函数的列表,使用这些函数校验该字段)(了解)write_only 表明该字段仅用于反序列化输入,默认False(重点)write_only 表明该字段仅用于反序列化输入,默认False(重点)read_only 表明该字段仅用于序列化输出,默认False(重点)read_only 表明该字段仅用于序列化输出,默认False(重点)原创 2022-12-28 22:54:04 · 337 阅读 · 1 评论 -
22--Django-后端开发-drf之Request对象、序列化组件Serializer的使用以及APIView执行流程分析
1.介绍djangorestframework(drf)是django的一个第三方app,使用它可以快速的写出符合Restful规范的接口。2.安装注:最新版本不支持django 1.x ,支持django 2.x,以后都用django2.2.2。3.settings.py文件添加apps。原创 2022-12-27 23:42:15 · 249 阅读 · 0 评论 -
21--Django-后端开发-Web开发模式、API接口以及Restful规范
因为作者没有写,作者只写了urlencoded和formdata的编码,json格式需要自己处理。RESTful是一种定义 API接口的设计风格,尤其适用于前后端分离的应用模式中。通过网络,规定了前后台信息交互规则的url链接,是前后台信息交互的媒介。tips:我们可以不按照上面规范,公司自己的规范,基本上都大差不差。4 数据即是资源,均使用名词(可复数)(地址中不带操作资源的动词)序列化: 把我们识别的数据转换成指定的格式提供给别人。反序列化:把别人提供的数据转换/还原成我们需要的格式。原创 2022-12-14 01:23:49 · 588 阅读 · 0 评论 -
20--Django-项目实战-博客开发之终章-文章评论、添加文章功能实现
步骤:1.搭建评论功能页面----评论文本框与提交按钮插曲:加了评论区域导致点赞点踩区域塌陷,解决方法是加class=“clearfix”2.搭建评论楼功能页面----利用forloop.counter计数评论楼层、创建时间(过滤器)、用户名、评论内容、回复按钮(加入自定义属性username、comment_id来获取、href="javascript:;"不跳转链接)3.评论----点击事件:1)如果不输入评论内容,给提示;2)发送ajax请求,传参数文章id、评论内容、父级id;3)提交评论原创 2022-11-29 01:43:42 · 611 阅读 · 0 评论 -
19--Django-项目实战-博客开发-开放对外访问接口、文章详情页以及下方点赞功能实现
eg:访问头像上传路径步骤:1.在settings.py里添加MEDIA_ROOT参数2.在urls.py里加入开放对外访问的接口注:通过增加路由,可以暴露任意接口步骤:1.验证站点是否存在,文章id是必须的,为了严谨还需要加入用户名这个参数,不存在跳转404页面2.侧边栏筛选功能别忘了加进来views.py路由配置:urls.py三、文章详情页面搭建因为文章详情页面和个人站点部分代码相同,所以创建一个基础页面,然后继承基础页面,再添加其他功能。步骤:1.在站点页面文章标题添加文章详情地原创 2022-11-27 00:00:02 · 501 阅读 · 0 评论 -
18--Django-项目实战-博客开发-个人站点板块
步骤:1.用户是否存在,不存在则渲染到404页面2.侧边栏筛选功能实现:标签下的文章数、分类下的文章数、日期归档(带下划线的正反向查询、分组查询)路由配置:urls.py(使用有名分组)二、个人站点页面搭建404页面实现:error.html个人站点:site.html步骤:1.个人站点文章信息展示(取值|过滤器)2.侧边栏筛选功能,我的标签、我的分类、日期归档实现:路由地址分成三个部分,username/condition/param,在对应的a标签下的href属性添加该路由地址,每部分原创 2022-11-26 00:22:33 · 527 阅读 · 0 评论 -
17--Django-项目实战-博客开发-登录功能和首页页面搭建
1、步骤1.获取用户输入的用户名、密码、验证码2.验证参数,先写错误的逻辑3.保存用户信息4.登录成功跳转首页views.py2、验证码实现前提:安装pillow库路由配置:urls.py二、登录页面搭建步骤:1.通过ajax和layer组件实现登录页面,登录成功跳转首页2.验证码img标签src属性需要指定路由地址三、首页功能实现1、获取所有用户的文章views.py2、修改密码功能步骤:1.获取用户输入的原密码、新密码、确认密码2.验证原密码是否正确,确认密码是否和新原创 2022-11-25 23:12:45 · 504 阅读 · 0 评论 -
16--Django-项目实战-博客开发之序曲-表设计与注册功能实现
需求分析交给开发,测试,主管,产品,再次确认需求是否可行开发阶段进行联调,然后提交测试不同环境:dev----是与前端联调的环境test----交给测试开始测release----预发布环境master----正式环境git:版本控制,多人协作开发的工具用户表扩展auth_user表,增加phone, avatar, create_time字段一对一站点表站点表站点名称、站点标题、站点样式 (xxx.css 存储css路径)标签表标签名一对多站点表分类表分类名一对多站点表文章表标题原创 2022-11-25 01:14:04 · 451 阅读 · 0 评论 -
15--Django-csrf跨站请求和auth模块
csrf_protect的验证,三种方式都可以。csrf_exempt的验证,只能用第三种方式。auth的认证,依赖于auth_user表。表单、ajax两种页面添加csrf验证。目的:为了保证数据提交的安全性。原创 2022-11-14 01:24:09 · 315 阅读 · 0 评论 -
14--Django-CBV添加装饰器、中间件
"""1. 在项目名或者是应用名下建一个文件夹2. 在文件夹中建一个py文件3. 写一个类,继承MiddlewareMixin4. 注册中间件""" """# 中间件的执行顺序process_request => 从上往下process_response => 从下往上# 如果在process_request方法中,返回了结果,后面的中间件如何走?后面的中间件不再走了,但是,同级别的process_response还是走的# flask框架中的中间件"""原创 2022-11-14 00:57:39 · 344 阅读 · 0 评论 -
13--Django-cookie、session的介绍与使用
http协议的四大特性:无状态(任何两次请求之间都没有依赖关系)、简单快速(结构较为简单)、灵活(允许传输任意类型的数据对象)、无连接(请求处理完毕并收到客户的应答后,就会直接断开连接)无状态的特点,即不能保存用户信息,怎么解决不能保存用户信息的问题?使用cookie、session,、token 、jwt,其中cookie,、session是技术,可以保存用户信息;token他不是一门技术,是一种方案、手段。原创 2022-11-14 00:20:01 · 263 阅读 · 0 评论 -
12--Django-批量插入数据、分页原理、分页器的使用
新建utils文件夹在app同级目录,创建mypage.py文件,复制已封装好的分页代码。page = 100 / 10 = 10 # => 商:10, 余数:0。2. 总数据:101, 每页显示10条 # => 商:10, 余数:1。3. 总数据:99, 每页显示10条 # => 商:9, 余数:9。1. 总数据:100, 每页显示10条。只要是余数不为0, 总页数=商+1。原创 2022-11-13 21:37:03 · 428 阅读 · 0 评论 -
11--Django-Ajax使用-前后端序列化、反序列化及layer组件
1、定义AJAX不是新的编程语言,而是一种使用现有标准的新方法。AJAX最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX使用JavaScript技术向服务器发送异步请求,AJAX请求无须刷新整个页面,因为服务器响应内容不再是整个页面,而是页面中的部分内容,所以AJAX性能高。2、特点局部刷新,异步提交eg:github注册页面需求:实现加法:a + b = c,前提:页面不能刷新views.py:index.html:总结:1.什么时候前端需要反序列原创 2022-11-13 20:09:46 · 354 阅读 · 0 评论 -
10--Django-ORM操作-choices参数、多对多的三种创建方式
可以利用正反向查询概念,还可以利用 add, set, remove, clear()add, set, remove, clear()不能用,不可以利用正反向查询概念。可以利用正反向的概念,但是不能用add, set, remove, clear()原创 2022-10-13 00:04:18 · 680 阅读 · 0 评论 -
09--Django-ORM操作-F与Q查询、开启事务以及常用的字段或方法
事务的四大特性:原子性、隔离性、一致性、持久性(acid)原创 2022-10-12 23:51:15 · 307 阅读 · 0 评论 -
08--Django-ORM操作-正反向概念、多表操作
你只要掌握了正反向的概念以及双下划线,那么你就可以无限制的跨表了!2.反向查询按表名小写,表名小写或表名小写加_set.all()不要企图一次性将orm语句写完,如果比较复杂,就写一点看一点。各表数据提前预置,我们在test.py文件中练习。在书写orm语句的时候跟写sql语句一样的。eg:书 => 出版社 => 一对多。外键字段在书表中,书查出版社就是正向。外键字段如果不在手上,我查你就是反向。外键字段在我这里,我查你那就是正向。原创 2022-10-12 00:27:49 · 328 阅读 · 0 评论 -
07--Django-ORM操作-单表查询
1. filter2. all3. first4. last5. get这些前面已经提到,下面介绍其他的一些用法。6.values。原创 2022-10-11 22:57:01 · 378 阅读 · 0 评论 -
06--Django模板层-常用操作
views.pyindex.html二、模板语法之过滤器语法:{{ 值|过滤器方法:参数 }}注意:1、date,safe必须掌握住2、如果传入是html(xss攻击),默认输出打印的是字符串,如果想要执行里面的内容,可以用模板语法{{ s1|safe }}实现,也可以用python来实现(需要导入mark_safe方法)四、模板语法之继承views.pyhome.htmlreg.htmllogin.htmlleft.html注意:1.导入模板2.模板继承原创 2022-10-10 01:12:47 · 359 阅读 · 0 评论