全栈开发
django+vue.js实战派
背景和目标
- 学习djiango这本书的各种设计与思想
content
-
视图和url
-
- 在基本操作完成之后你可以进行简单的映射访问
- 还可以使用复杂的, 例如变化的url参数, 但是后端能通过变量接收到解析出来| 还可以通过httprequest来看请求的参数内容,并且控制get和post方式的捕捉 | 还可以通过render渲染到页面文件中 | 还可以写成类方式
-
-
django的页面展示
- 可以使用页面进行控制, 首先你可以自定义的语法在html中写入自己的render数据, | 还可以直接配置前端文件放到static
- 子主题 2
-
数据库操作
- 首先要知道表是怎么创建的, | 之后要知道数据库怎么让模型能够表达一对 1 , 一对多, 多对多的关系。 需要一些声明, 这样创建的时候就会自动搞成外键等 | 还有数据库的基本操作如何操作, 如何使用函数和游标进行加速 | 如何使用事务和远程的sql语句 |
-
自动生成界面, django的表单
- 首先就是要知道html中有很多和用户交互的表单, 但是这种表单写起来的代码非常多, 可以使用vue或者django的自定义表单 , 用这个表单设置好表单内容, 然后嵌入到html中返回 | 记得还要加 csrf_token 校验 | 记数据库模型可以直接嵌入 | 知道怎么使用js的包 jquery 中的ajax直接让远端数据渲染页面, 不用每次界面都要刷新。
-
用户认证
- 这部分主要就是先介绍一套账号登录和注销的流程, 前后端的 | 之后介绍了如何基于数据库扩展用户的信息 | 之后介绍如何通过中间件aop切面来将中间校验是否登录 和权限管理等功能加入登录功能中
-
前后端不分离后台项目实战
- 这部分作者基于dango自带的admin系统对数据内容做了修改, 基本不用开发前端 , 但是这样有个问题就是无法定制一些好看的界面和功能| 之后作者使用了booststrap框架做了一个前端页面(这个页面也是用了整体的解决方案), 然后修修改改适配了之前django的功能。
-
前后端分离的后端开发
- 作者首先介绍了前后端开发的优势, 让前端更人性化, 让后端更专注于逻辑的表达 | 之后说了restful接口的定义规范是不要动词, 有put和get等请求 | 之后说了序列化和反序列化的一些逻辑| 之后介绍了django的drf框架用来开发restful | 使用drf直接使用序列化和反序列化工具类 |
- drf中写restful的方式有很多, 也非常简单, 首先就是直接写在序列化类中 | 此外你可以写到视图类中 | 现在drf一般使用高级的用法: mix装饰器提供很多序列化等类, 然后你可以通过genericapiview进行数据接口的直接获取和get post函数的定义 | 最终可以使用viewset整合之前的所有操作 , 全部到一个类中|
- 此外作者介绍了分页、过滤、搜索等插件的使用 | 并且自定义了很多django提供的类, 确实很厉害 | 然后作者强调了token的作用, 并且使用jwt组件实现token的高效使用保存 | 之后给出了跨域的中间件使用
- 之后作者继承了viewset设置了各种接口, 并且使用pstman进行了测试 并且通过swagger生成了在线的文档
-
分层的自动化测试
- 作者先是介绍了如何使用utest 和pytest对这些数据库类进行单元测试, 测试中用的类等非常类似c++, 最后还能生成测试结果, 如果单元测试的功能不通过, 代码代码是有问题的 | 之后就是postman或者(request 包 + pytest)自动化测试, 看看接口的结果是否一样。 | 最后还有界面测试,为了模拟前端的效果, 使用selenium操作自动前端, 捕捉异常的标签, 当结果不正确的时候进行截图保存。
-
redis的使用
- 对于一些热点数据和访问, 可以设置缓存时间。 此外作者使用了redis代替了数据库中cache session, 这样当服务器扩充很多需要另外服务器来继续交接负载太大的服务器用户工作时候可以顺利进行。
-
前端的开发
- 这部分就是写数据和接口, 然后通过数据绑定和axos进行交互, 但是前端这部分我不明白为什么可以写出来这个复杂的前端页面交互, 感觉是自由发挥? 具体需要怎么写一个小的界面, 怎么达到想要什么就是什么? 这点需要查一下, 不然我根本掌握不了前端的内容, 感觉就像前面在讲如何建一个小房子, 后面就在说如何创建火箭 |
-
各种运维工具
- 一般的部署就是先设置好环境, 然后安装uwsi等服务器启动django应用, 再通过nginx转发。 之后可以将这些服务布置到docker上去 | 之后可以使用jenkins将这些继承部署和测试的任务(CICD等集成测试工作)全部弄成工作流 | 之后可以使用prometheus进行服务的情况上报 , 然后通过 grafana进行部署 |
前端
- html
- css
- js
fastwork
- run server
version
- 2022年10月1日23:03:31 进行git第一版的修改, 后续还会补充。但是日常开发已经够了。
- 2022年10月2日14:03:23 关于rebase进行了修改, 因为之前 对着方面认知不够。
- 2022年10月3日23:34:30 整理了大致的版本, 还有很多东西还没补充进去。 下一步打算整理一些工具和边角工作。
reference
-
施磊老师的课程
- 一个C++分布式聊天服务项目, 基本设计了所有的C++后端内容
-
djiango + vue实战派
- 基本覆盖了前后端+ 运维相关的知识。
-
个人博客:ElasticSearch+Spark构建高相关性搜索服务&千人千面推荐系统
-
这就是搜索引擎
-
北邮搜索引擎原理
- https://www.bilibili.com/video/BV12f4y1J7vz/?spm_id_from=333.337.search-card.all.click