IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Task04:前后端基础及交互 -> 正文阅读

[JavaScript知识库]Task04:前后端基础及交互

0.代码版本

该专栏的博客当中涉及的所有代码,均为组队学习期间的版本,大概在2021年12月12日左右,某一个可能的参考版本链接如下:

https://github.com/datawhalechina/fun-rec/tree/9bcfafaae339c443cc7911b9070bf52adef9e994

1. 前端部分

1.1 主要文件

PS D:\Project\fun-rec\codes\news_recsys\news_rec_web> tree /f /a
卷 Data 的文件夹 PATH 列表
卷序列号为 7876-8A9C
D:.
\---Vue-newsinfo
    |   .babelrc
	|	ES6转码的配置文件
	|
    |   package-lock.json
	|	锁定安装时的包的版本号
	|	保证大家的依赖能一致
	|
    |   package.json
	|	依赖包的配置文件
	|	配置前端项目运行脚本
	|
    |   README.md
	|	说明文件
	|
    |   vue.config.js
	|	vue项目的配置文件
	|
    |   webpack.config.js
	|	webpack的配置文件
	|	用于打包整个项目
    |
    \---src
        |   App.vue
		|	根组件
		|
        |   index.html
		|	项目主页面
		|
        |   main.js
		|	主脚本文件
		|	用于定义全局变量
		|	同时可以引入插件
		|
        |   router.js
		|	路由脚本文件
		|	配置url链接与页面组件的映射
		|
        |   store.js
		|	管理用户的各种状态
        |
        +---api
        |       newVue.js
		|		不太清楚是什么作用
		|		只有两行代码的import
		|		结合下面的文件,感觉没用
		|
        |       Vue╕№╨┬?ц ╧ю─┐║═api╜╙┐┌╦╡├?╬─╡╡ги╧ю─┐╓╨╦?╙╨╡─╜╙┐┌╬─╡╡╥╘┤╦╬к╫╝гй-╫ю╨┬.docx
		|		一个word文档,好像是某个库的各个API描述,但是看起来与本项目无关
        |
        +---assets
        |   |   logo.png
		|	|	vue的logo文件
        |   |
        |   +---css
        |   |       index.less
		|	|		不知道是什么,感觉没用
		|	|
        |   |       sign.css
		|	|		用户登录注册页面的装饰
		|	|
        |   |       tab.css
		|	|		vant顶部导航装饰
		|	|		但是没有在本项目使用
		|	|
        |   |       test.css
		|	|		顶部导航栏装饰
		|	|		就是推荐和热门两个tab
        |   |
        |   \---js
        |           cookie.js
		|			定义cookie的相关操作
        |
        +---components
        |       bottomBar.vue
		|		底部组件,就是我的和新闻两个tab
		|
        |       common.vue
		|		存放全局变量
		|
        |       hotLists.vue
		|		热门页
		|
        |       Myself.vue
		|		个人中心
		|
        |       NewsInfo.vue
		|		新闻详情页
		|
        |       recLists.vue
		|		推荐页
		|
        |       signIn.vue
		|		登录页面
		|
        |       signUp.vue
		|		注册页面
        |       
        +---images
        |       datawhale.png
		|		DataWhale头像
		|
        |       dw.png
		|		DataWhale二维码
        |
        \---lib
            \---mui
			 \--饿了么的Mint UI库
			  \-但是没有在本项目使用
			   \
                +---css
                |       icons-extra.css
                |       mui.css
                |       mui.min.css
                |
                +---fonts
                |       mui-icons-extra.ttf
                |       mui.ttf
                |
                \---js
                        mui.js
                        mui.min.js

1.2 主要组件

1.2.1 signUp.vue

在这里插入图片描述

1.2.2 signIn.vue

在这里插入图片描述

1.2.3 recLists.vue

在这里插入图片描述

1.2.4 hotLists.vue

在这里插入图片描述

1.2.5 NewsInfo.vue

1.2.6 Myself.vue

2. 后端部分

2.1 主要文件

从前后端交互的角度来讲,主要的只有server.py这个文件在直接处理请求

2.2 主要组件

2.2.1 register()

@app.route('/recsys/register', methods=["POST"])

接收前端传来的注册请求及用户信息

首先要查重,使用UserAction().user_is_exist()来检查用户名

重复则返回,不重复则从雪花算法获取一个独特的uid

然后依次检查用户信息的合法性,不合法返回错误

合法则用UserAction().save_user()存入MySQL

2.2.2 login()

@app.route('/recsys/login', methods=["POST"])

接收前端传来的登录请求及登录信息

UserAction().user_is_exist来检查用户名和密码

成功则返回200状态,否则就返回其他状态

2.2.3 rec_list()

@app.route('/recsys/rec_list', methods=["GET"])

接收前端传来的获取推荐的请求及其对应参数

recsys_server.get_cold_start_rec_list_v2()获得推荐结果

也就是OnlineServer().get_cold_start_rec_list_v2()函数

2.2.4 hot_list()

@app.route('/recsys/hot_list', methods=["GET"])

接收前端传来的获取热门的请求及其对应参数

recsys_server.get_hot_list_v2()获得热门列表

也就是OnlineServer().get_hot_list_v2()函数

2.2.5 news_detail()

@app.route('/recsys/news_detail', methods=["GET"])

接收前端传来的获取新闻的请求及其对应参数

recsys_server.get_news_detail()获得新闻内容

也就是OnlineServer().get_news_detail()函数

同时,需要检查该用户是否对该文章点赞和收藏

也就是UserAction().get_likes_counts_by_user(user_id,news_id)

UserAction().get_coll_counts_by_user(user_id,news_id)

2.2.6 actions()

@app.route('/recsys/action', methods=["POST"])

接收前端传来的用户行为请求及其对应参数

如果是likecollection,那就要检查状态

已经有过,这次就是取消,删除对应的记录

UserAction().del_likes_by_user(userid,newsid)

UserAction().del_coll_by_user(userid,newsid)

还没有过,这次就是记录,新增对应的记录

UserAction().save_one_action(userlikes)

UserAction().save_one_action(usercollections)

不管状态检查的结果如何,日志都是照常记录的

也就是LogController().save_one_log(logitem)

3. 交互图示

在这里插入图片描述

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:12:45  更:2022-03-16 22:12:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:35:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码