补充前端代码结构说明
This commit is contained in:
@@ -61,13 +61,20 @@ class ColdStart(object):
|
||||
"""将每个用户涉及到的不同的新闻列表添加到redis中去
|
||||
"""
|
||||
for user_info in self.register_user_sess.query(RegisterUser).all():
|
||||
if int(user_info.age) < 23 and user_info.gender == "female":
|
||||
# 年龄不正常的人,随便先给一个分组,后面还需要在前后端补充相关逻辑
|
||||
try:
|
||||
age = int(user_info.age)
|
||||
except:
|
||||
self._copy_cold_start_list_to_redis(user_info.userid, group_id="4")
|
||||
print("user_info.age: {}".format(user_info.age))
|
||||
|
||||
if age < 23 and user_info.gender == "female":
|
||||
self._copy_cold_start_list_to_redis(user_info.userid, group_id="1")
|
||||
elif int(user_info.age) >= 23 and user_info.gender == "female":
|
||||
elif age >= 23 and user_info.gender == "female":
|
||||
self._copy_cold_start_list_to_redis(user_info.userid, group_id="2")
|
||||
elif int(user_info.age) < 23 and user_info.gender == "male":
|
||||
elif age < 23 and user_info.gender == "male":
|
||||
self._copy_cold_start_list_to_redis(user_info.userid, group_id="3")
|
||||
elif int(user_info.age) >= 23 and user_info.gender == "male":
|
||||
elif age >= 23 and user_info.gender == "male":
|
||||
self._copy_cold_start_list_to_redis(user_info.userid, group_id="4")
|
||||
else:
|
||||
pass
|
||||
|
||||
@@ -45,6 +45,12 @@ def register():
|
||||
user.gender = request_dict["gender"]
|
||||
user.city = request_dict["city"]
|
||||
|
||||
# 检验年龄格式的合法性
|
||||
try:
|
||||
age = int(user.age)
|
||||
except:
|
||||
return jsonify({"code": 500, "mgs": "age is not valid."})
|
||||
|
||||
# 添加注册用户
|
||||
save_res = UserAction().save_user(user)
|
||||
if not save_res:
|
||||
|
||||
@@ -1,15 +1,140 @@
|
||||
## 新闻推荐系统
|
||||
- 项目学习到的知识点
|
||||
+ 基于vue的框架mui Mint-ui的基本使用。
|
||||
+ 基于nodejs的npm包管理工具、打包工具webpack和与之相对应的插件,以及babel的配置。
|
||||
+ vue路由的相关知识,路由的配置和渲染以及编程式路由的使用。
|
||||
+ vue-axios的使用,项目里调用接口都是用的这个异步ajax插件。
|
||||
+ 全局组件、过滤器的使用。
|
||||
+ watch和计算属性的使用。
|
||||
+ vuex的使用--购物车里商品信息的同步都是基于vuex来实现的。
|
||||
### 新闻推荐系统
|
||||
|
||||
## 运行
|
||||
1. 本地安装node环境 建议使用项目中给出的node版本安装 ,在项目根目录命令行输入命令`npm install`安装依赖包
|
||||
2. 跳转到前端项目文件目录:cd $HOME/fun-rec/codes/news_recsys/news_rec_web/Vue-newsinfo
|
||||
3. 启动前端服务:npm run dev
|
||||
4. 访问地址`http://localhost:3000`
|
||||
- 项目学习到的知识点
|
||||
|
||||
+ 基于vue的框架Vant UI的基本使用。
|
||||
|
||||
+ 基于nodejs的npm包管理工具、打包工具webpack和与之相对应的插件。
|
||||
|
||||
+ vue路由的相关知识,路由的配置和渲染以及路由守卫的使用。
|
||||
|
||||
+ vue-axios的使用,项目里调用接口都是用的这个异步ajax插件。
|
||||
|
||||
+ 全局组件的使用。
|
||||
|
||||
---
|
||||
|
||||
|
||||
### 运行
|
||||
|
||||
1. 跳转到前端项目文件目录:`cd Vue-newsinfo`
|
||||
|
||||
2. 本地安装node环境,在项目根目录命令行输入命令`npm install`安装依赖包
|
||||
|
||||
如果因为版本或者网络问题下载失败请执行`npm install -g cnpm -registry=https://registry.npm.taobao.org/
|
||||
`和`cnpm install`
|
||||
|
||||
3. 启动前端服务:`npm run dev`
|
||||
|
||||
4. 本机访问地址`http://0.0.0.0:8686/#/`
|
||||
|
||||
5. 点击`F12`或者右键选择`检查`打开`开发者模式`,选中移动端浏览(点击左上角箭头右边的手机按钮)开始体验
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
### 目标功能
|
||||
- [X] **用户登录** —— 用户输入用户名和密码登录后进入主页面
|
||||
|
||||
- `记住我`可以保存将登录信息保存7天
|
||||
|
||||
- `忘记密码` 暂时没有写逻辑不能使用
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/登录.jpg" width = "30%" height = "30%" alt="登录"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [X] **用户注册** —— 新用户注册信息
|
||||
|
||||
- 用户名可以为英文和数字
|
||||
|
||||
- 密码是大于6位的英文和数字
|
||||
|
||||
- 年龄是大于0的整数
|
||||
|
||||
- 注册成功后将跳转至主页面
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/注册.jpg" width = "30%" height = "30%" alt="注册"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [X] **推荐页及热门页内容显示** —— 根据不同用户个性化显示不同新闻内容
|
||||
|
||||
- 推荐页和热门页之间的切换时添加缓存(存在定位有些偏差的bug)
|
||||
|
||||
- 点进新闻详情页后阅读次数会实时增加,返回后定位在原始位置
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/推荐.jpg" width = "30%" height = "30%" alt="推荐"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/热门.jpg" width = "30%" height = "30%" alt="热门"/>
|
||||
</div>
|
||||
|
||||
|
||||
- [x] **新闻详情** —— 显示当前新闻的详细信息
|
||||
|
||||
- 显示标题、内容等信息
|
||||
|
||||
- 底部点击`喜欢`或者`收藏`可以记录将当前用户行为,并在列表页相应增加
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/新闻详情.jpg" width = "30%" height = "30%" alt="新闻详情"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/新闻详情2.jpg" width = "30%" height = "30%" alt="新闻详情2"/>
|
||||
</div>
|
||||
|
||||
- [X] **个人中心** —— 记录用户的头像和用户名
|
||||
|
||||
- 显示头像和登录名(头像暂时统一为DataWhle图标)
|
||||
|
||||
- 显示DataWhale相关介绍
|
||||
|
||||
<div align="center">
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/个人中心1.jpg" width = "30%" height = "30%" alt="个人中心1"/>
|
||||
<img src="https://gitee.com/theNeverLemon/news-img/raw/master/img/个人中心2.jpg" width = "30%" height = "30%" alt="个人中心2"/>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
### 项目目录
|
||||
|
||||
```
|
||||
.
|
||||
├── package.json 项目配置文件
|
||||
├── package-lock.json
|
||||
├── README.md 项目介绍
|
||||
├── src
|
||||
│ ├── api
|
||||
│ │ └── newVue.js 引入'EventBus'进行参数传递 (最后未使用)
|
||||
│ ├── App.vue 根组件
|
||||
│ ├── assets 资源目录,这里的资源会被wabpack构建
|
||||
│ │ ├── css 样式文件
|
||||
│ │ │ ├── sign.css 登录注册页的样式
|
||||
│ │ │ ├── tab.css vant顶部导航样式 (最后未使用)
|
||||
│ │ │ └── test.css 顶部导航样式
|
||||
│ │ ├── js 功能文件
|
||||
│ │ │ └── cookie.js 定义cookie的相关操作
|
||||
│ │ └── logo.png vue的logo(未使用)
|
||||
│ ├── components 组件
|
||||
│ │ ├── bottomBar.vue 底部导航
|
||||
│ │ ├── common.vue 存放全局变量
|
||||
│ │ ├── hotLists.vue 热门页
|
||||
│ │ ├── Myself.vue 个人中心
|
||||
│ │ ├── NewsInfo.vue 新闻详情页
|
||||
│ │ ├── recLists.vue 推荐页
|
||||
│ │ ├── signIn.vue 登录
|
||||
│ │ └── signUp.vue 注册
|
||||
│ ├── images 图片
|
||||
│ │ ├── datawhale.png DataWhale头像
|
||||
│ │ └── dw.png DataWhale二维码
|
||||
│ ├── index.html 首页入口文件
|
||||
│ ├── lib 库((最后未使用))
|
||||
│ │ └── mui
|
||||
│ ├── main.js 入口js文件
|
||||
│ ├── router.js 配置路由页面跳转
|
||||
│ └── store.js 应用级数据(state)
|
||||
├── vue.config.js vue项目的配置文件,专用于vue项目
|
||||
└── webpack.config.js webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用
|
||||
```
|
||||
Reference in New Issue
Block a user