【Python使用】嘿马头条项目从到完整开发教程第1篇:简介,ToutiaoWeb虚拟机使用说明【附代码文档】
教程总体简介:2. 目标 ToutiaoWeb虚拟机使用说明 Pycharm远程开发 产品与开发 1 产品介绍 2 原型图与UI图 3 技术架构 4 开发 数据库 APScheduler定时任务 定时修正统计数据 RPC简介 1. 什么是RPC 2. 背景与用途 3. 概念说明 4. 优缺点 gRPC 简介 架构 使用方法 Protocol Buffers 1 文档结构 2 注释 3 数据类型 3.2 枚举 4 消息类型 4.1 字段编号 4.2 指定字段规则 4.3 添加更多消息类型 4.4 保留字段 4.5 默认值 4.6 嵌套类型 5 map映射 6 oneof 7 定义服务 推荐系统接口定义 接口原型 使用Protobuf 定义的接口如下 代码生成 补全服务端 编写客户端 头条首页新闻推荐接口编写 即时通讯简介 需求场景 传统的推送实现 WebSocket Socket.IO 1 简介 2 Python服务器端开发 安装 创建服务器 事件处理 头条聊天服务实现 头条在线消息推送实现 需求 实现 Elasticsearch 简介与原理 2 搜索的原理——倒排索引(反向索引)、分析、相关性排序 概念与集群 概念 IK中文分析器 索引与类型 索引 类型和映射 文档 索引文档(保存文档数据) 获取指定文档 判断文档是否存在 更新文档 删除文档 Logstash导入数据 查询 1 基本查询 2 高级查询 头条全文检索实现 elasticsearch python客户端使用 头条项目搜索接口视图实现 添加ES新文章索引数据 联想提示 1 拼写纠错 2 自动补全 头条suggest查询实现 思路 单元测试 为什么要测试 测试的分类 单元测试的基本写法 Gunicorn Supervisor 配置 启动 部署相关 理解ORM 作用 思考: 使用ORM的方式选择 SQLAlchemy映射构建 2 安装 3 数据库连接设置 4 模型类字段与选项 5 构建模型类映射 分布式ID 1 方案选择 2 黑马头条 Redis 2 Redis持久化 5 用途 6 相关补充阅读 Git工用流 Gitflow工作流 1 工作方式 2 历史分支 3 功能分支 4 发布分支 5 维护分支 6 示例 头条项目目录 调试方法 JWT & JWS & JWE Json Web Token(JWT) JSON Web Signature(JWS) JWT的Python库 用例 头条项目实施方案 JWT禁用问题 JWT认证方案 OSS对象存储 CDN 缓存 缓存架构 缓存数据 缓存数据的保存方式 缓存有效期与淘汰策略 有效期 TTL (Time to live) 缓存淘汰 eviction Redis淘汰策略的配置 缓存模式 1) Cache Aside 缓存问题 1 缓存穿透 2 缓存雪崩 头条项目缓存与存储设计 缓存设计 1 User Cache 3 Article Cache 4 Announcement Cache 持久存储设计 1 阅读历史 2 搜索历史 3 统计数据
完整笔记资料代码:https://gitee.com/yinuo112/Backend/tree/master/Python/嘿马头条项目从到完整开发教程/note.md
感兴趣的小伙伴可以自取哦~
全套教程部分目录:
部分文件图片:
简介
1. 内容
- 项目介绍
- 数据库方案
- Gitflow工作流
- 认证方案
- 对象存储
- 缓存方案
- RPC方案 grpc
- 搜索方案
- 即时通讯方案
- APScheduler定时任务
- supervisor进程管理
2. 目标
- 以黑马头条产品为依托案例,但不再以具体业务实现为主
- 力求掌握解决不同问题的实施方案
- 深入理解并巩固前面所学的知识
ToutiaoWeb虚拟机使用说明
- 作为项目的开发环境
-
黑窗口 无GNOME 模拟企业中的开发服务器环境
-
CentOS7.2
-
开机前先将虚拟机调成NAT模式
- 虚拟机占用内存4G,如果主机内存不足,可启动前将内存占用调为2G
-
在Windows中使用SSH客户端
-
Termius
-
xshell
-
ssh python@自己的ip地址
-
用户名 密码
-
系统
- root -> chuanzhi
- python -> chuanzhi
-
MySQL
- root -> mysql
-
端口
-
MySQL (mariadb)
- master -> 3306
- slave -> 8306 (mysql -uroot -p -h 127.0.0.1 --port=8306)
-
Redis
- cluster -> 7000 7001 7002 7003 7004 7005
- master & slave -> 6380 6381
- sentinel -> 26380 26381 26382
-
Elasticsearch 5
- 9200
-
Python 虚拟环境
-
workon toutiao
-
关机 sudo shutdown now
- 重启 reboot
Pycharm远程开发
可以在Windows中使用Pycharm编写代码,而代码的调试运行可以使用远程服务器中的python解释器。
在本地创建好工程项目(或从git上clone下代码)后,用Pycharm打开:
- 打开「Tools」设置 「Deployment」
- 选择SFTP
- 设置服务器名字
- 设置服务器信息
|
|
- 测试服务器连接是否可用
- 设置上传代码的目录映射
- 打开设置,设置远程Python解释器
- 选择已存在的服务器设置
- 选择Create 复制服务器设置到解释器中
- 选择远程服务器中虚拟环境里的解释器
|
|
- 设置远程服务器运行代码的目录映射
- 若Pycharm不能自动上传代码,可勾选Automatic Upload
注意,设置后Pycharm要加载环境,需要花费一定时间(只在配置后第一次使用发生)
产品与开发
1 产品介绍
黑马头条是一款基于个性化推荐的科技资讯类阅读产品,类似于今日头条,产品分为以下几个终端:
- 用户端
用户获取个性化推荐资讯的终端,有阅读、关注、评论、智能客服(聊天机器人)等功能,分移动Web页面及iOS和安卓App。
- 自媒体端
自媒体端是自媒体作者编辑、发布资讯文章、查看自媒体号运营数据的平台。
- MIS管理后台
MIS管理后台是黑马头条产品公司运营管理的后台,可进行用户管理、文章审核及管理、评论管理等。
2 原型图与UI图
- 产品原型图
产品经理制作,是产品的原型设计,表达产品的功能组成
产品原型图的查看,需要安装Axure RP的Chrome浏览器扩展,方式如下:
- 进入Chrome浏览器「扩展程序」页面
- 打开「开发者模式」
- 点击「加载已解压的扩展程序」,并选择「Axure_RP_Extension_for_Chrome_0.6.3」目录
- 选择已安装扩展的「详细信息」
- 打开「允许访问文件网址」
安装后,打开原型图目录中的「index.html」文件即可。
原型图包含:
-
前台原型图
- 用户端
- 自媒体端
-
后台原型图(MIS管理后台)
-
UI效果图
用户界面效果图,由UI人员设计,是产品最终的用户能够看到的产品样式效果。
3 技术架构
项目采用前后端分离模式。
