博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到🔎上千套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我❤️文末获取源码联系❤️ ⚠️一定要先收藏⚠️
第4章 系统设计
4.1 基于Django的大学生理财及记账系统网站功能结构设计
本基于Django的大学生理财及记账系统采用Python语言来进行开发,从角色上分为前台和后台2部分,用户功能主要是在前台,主要内容包括首页、零钱理财、工资理财、期限理财、基金理财、银行信息、网贷信息、系统公告、个人中心、后台管理等功能,后台部分主要给管理人员使用的,主要功能包括系个人中心、用户管理、银行卡管理、零钱理财管理、工资理财管理、期限理财管理、基金理财管理、银行信息管理、网贷信息管理、贷款申请管理、系统管理等内容。通过本系统基本可以满足大学生的理财和记账方面的需要。具体如下图4-1所示
图4-2 基于Django的大学生理财及记账系统网站功能结构图
4.2 基于Django的大学生理财及记账系统网站数据库设计
本系统共包含21个表:分别是关于我们表,配置文件表,贷款申请表,工资理财评论表表,基金理财评论表表,零钱理财评论表表,期限理财评论表表,网贷信息评论表表,银行信息评论表表,工资理财表,基金理财表,零钱理财表,新闻资讯表,期限理财表,收藏表表,关于我们表,用户表表,网贷信息表,银行卡表,银行信息表,用户表等信息表
表名 | 说明 | 功能 |
aboutus | 关于我们 | 主要用来存放关于我们的相关内容 |
config | 配置文件 | 主要用来存放配置文件的相关内容 |
daikuanshenqing | 贷款申请 | 主要用来存放贷款申请的相关内容 |
discussgongzilicai | 工资理财评论表 | 主要用来存放工资理财评论表的相关内容 |
discussjijinlicai | 基金理财评论表 | 主要用来存放基金理财评论表的相关内容 |
discusslingqianlicai | 零钱理财评论表 | 主要用来存放零钱理财评论表的相关内容 |
discussqixianlicai | 期限理财评论表 | 主要用来存放期限理财评论表的相关内容 |
discusswangdaixinxi | 网贷信息评论表 | 主要用来存放网贷信息评论表的相关内容 |
discussyinxingxinxi | 银行信息评论表 | 主要用来存放银行信息评论表的相关内容 |
gongzilicai | 工资理财 | 主要用来存放工资理财的相关内容 |
jijinlicai | 基金理财 | 主要用来存放基金理财的相关内容 |
lingqianlicai | 零钱理财 | 主要用来存放零钱理财的相关内容 |
news | 新闻资讯 | 主要用来存放新闻资讯的相关内容 |
qixianlicai | 期限理财 | 主要用来存放期限理财的相关内容 |
storeup | 收藏表 | 主要用来存放收藏表的相关内容 |
systemintro | 关于我们 | 主要用来存放关于我们的相关内容 |
users | 用户表 | 主要用来存放用户表的相关内容 |
wangdaixinxi | 网贷信息 | 主要用来存放网贷信息的相关内容 |
yinxingka | 银行卡 | 主要用来存放银行卡的相关内容 |
yinxingxinxi | 银行信息 | 主要用来存放银行信息的相关内容 |
yonghu | 用户 | 主要用来存放用户的相关内容 |
表 4-2 关于我们信息(aboutus)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | title | varchar(200) | NO | NO | 标题 |
NO.4 | subtitle | varchar(200) | NO | NO | 副标题 |
NO.5 | content | longtext | NO | NO | 内容 |
NO.6 | picture1 | longtext | NO | NO | 图片1 |
NO.7 | picture2 | longtext | NO | NO | 图片2 |
NO.8 | picture3 | longtext | NO | NO | 图片3 |
表 4-3 配置文件信息(config)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | name | varchar(100) | NO | NO | 配置参数名称 |
NO.3 | value | varchar(100) | NO | NO | 配置参数值 |
表 4-4 贷款申请信息(daikuanshenqing)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | daikuanbianhao | varchar(200) | NO | NO | 贷款编号 |
NO.4 | daikuanmingcheng | varchar(200) | NO | NO | 贷款名称 |
NO.5 | yinxingmingcheng | varchar(200) | NO | NO | 银行名称 |
NO.6 | daikuanjine | varchar(200) | NO | NO | 贷款金额 |
NO.7 | haikuanfangshi | varchar(200) | NO | NO | 还款方式 |
NO.8 | daikuanshizhang | varchar(200) | NO | NO | 贷款时长 |
NO.9 | nianlilv | varchar(200) | NO | NO | 年利率 |
NO.10 | yonghuming | varchar(200) | NO | NO | 用户名 |
NO.11 | zhenshixingming | varchar(200) | NO | NO | 真实姓名 |
NO.12 | shoujihao | varchar(200) | NO | NO | 手机号 |
NO.13 | shenqingshijian | datetime | NO | NO | 申请时间 |
NO.14 | sfsh | varchar(200) | NO | NO | 是否审核 |
NO.15 | shhf | longtext | NO | NO | 审核回复 |
表 4-5 工资理财评论表信息(discussgongzilicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-6 基金理财评论表信息(discussjijinlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-7 零钱理财评论表信息(discusslingqianlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-8 期限理财评论表信息(discussqixianlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-9 网贷信息评论表信息(discusswangdaixinxi)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-10 银行信息评论表信息(discussyinxingxinxi)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | refid | bigint(20) | NO | NO | 关联表id |
NO.4 | userid | bigint(20) | NO | NO | 用户id |
NO.5 | avatarurl | longtext | NO | NO | 头像 |
NO.6 | nickname | varchar(200) | NO | NO | 用户名 |
NO.7 | content | longtext | NO | NO | 评论内容 |
NO.8 | reply | longtext | NO | NO | 回复内容 |
表 4-11 工资理财信息(gongzilicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | chanpinmingcheng | varchar(200) | NO | NO | 产品名称 |
NO.4 | chanpinleixing | varchar(200) | NO | NO | 产品类型 |
NO.5 | meiyuetourujine | varchar(200) | NO | NO | 每月投入金额 |
NO.6 | shifouzidongzhuanru | varchar(200) | NO | NO | 是否自动转入 |
NO.7 | fengmian | longtext | NO | NO | 封面 |
NO.8 | touziqixian | varchar(200) | NO | NO | 投资期限 |
NO.9 | clicktime | datetime | NO | NO | 最近点击时间 |
NO.10 | clicknum | int(11) | NO | NO | 点击次数 |
表 4-12 基金理财信息(jijinlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | jijindaima | varchar(200) | NO | NO | 基金代码 |
NO.4 | jijinmingcheng | varchar(200) | NO | NO | 基金名称 |
NO.5 | jijinleixing | varchar(200) | NO | NO | 基金类型 |
NO.6 | fengmian | longtext | NO | NO | 封面 |
NO.7 | rizengzhanglv | varchar(200) | NO | NO | 日增长率 |
NO.8 | yuezengzhanglv | varchar(200) | NO | NO | 月增长率 |
NO.9 | nianzengzhanglv | varchar(200) | NO | NO | 年增长率 |
NO.10 | qitoujine | varchar(200) | NO | NO | 起投金额 |
NO.11 | touziqixian | varchar(200) | NO | NO | 投资期限 |
NO.12 | clicktime | datetime | NO | NO | 最近点击时间 |
NO.13 | clicknum | int(11) | NO | NO | 点击次数 |
表 4-13 零钱理财信息(lingqianlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | chanpinmingcheng | varchar(200) | NO | NO | 产品名称 |
NO.4 | shouyilv | varchar(200) | NO | NO | 收益率 |
NO.5 | meiwanyuanyujishouyi | varchar(200) | NO | NO | 每万元预计收益 |
NO.6 | qitoujine | float | NO | NO | 起投金额 |
NO.7 | touziqixian | varchar(200) | NO | NO | 投资期限 |
NO.8 | fengmiantupian | longtext | NO | NO | 封面图片 |
NO.9 | clicktime | datetime | NO | NO | 最近点击时间 |
NO.10 | clicknum | int(11) | NO | NO | 点击次数 |
表 4-14 新闻资讯信息(news)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | title | varchar(200) | NO | NO | 标题 |
NO.4 | introduction | longtext | NO | NO | 简介 |
NO.5 | picture | longtext | NO | NO | 图片 |
NO.6 | content | longtext | NO | NO | 内容 |
表 4-15 期限理财信息(qixianlicai)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | chanpinmingcheng | varchar(200) | NO | NO | 产品名称 |
NO.4 | fengmian | longtext | NO | NO | 封面 |
NO.5 | shouyilv | varchar(200) | NO | NO | 收益率 |
NO.6 | qitoujine | float | NO | NO | 起投金额 |
NO.7 | touziqixian | varchar(200) | NO | NO | 投资期限 |
NO.8 | clicktime | datetime | NO | NO | 最近点击时间 |
NO.9 | clicknum | int(11) | NO | NO | 点击次数 |
表 4-16 收藏表信息(storeup)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | userid | bigint(20) | NO | NO | 用户id |
NO.4 | refid | bigint(20) | NO | NO | 商品id |
NO.5 | tablename | varchar(200) | NO | NO | 表名 |
NO.6 | name | varchar(200) | NO | NO | 名称 |
NO.7 | picture | longtext | NO | NO | 图片 |
NO.8 | type | varchar(200) | NO | NO | 类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) |
NO.9 | inteltype | varchar(200) | NO | NO | 推荐类型 |
NO.10 | remark | varchar(200) | NO | NO | 备注 |
表 4-17 关于我们信息(systemintro)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | title | varchar(200) | NO | NO | 标题 |
NO.4 | subtitle | varchar(200) | NO | NO | 副标题 |
NO.5 | content | longtext | NO | NO | 内容 |
NO.6 | picture1 | longtext | NO | NO | 图片1 |
NO.7 | picture2 | longtext | NO | NO | 图片2 |
NO.8 | picture3 | longtext | NO | NO | 图片3 |
表 4-18 用户表信息(users)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | username | varchar(100) | NO | NO | 用户名 |
NO.3 | password | varchar(100) | NO | NO | 密码 |
NO.4 | role | varchar(100) | NO | NO | 角色 |
NO.5 | addtime | timestamp | NO | NO | 新增时间 |
表 4-19 网贷信息(wangdaixinxi)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | daikuanbianhao | varchar(200) | NO | NO | 贷款编号 |
NO.4 | daikuanmingcheng | varchar(200) | NO | NO | 贷款名称 |
NO.5 | fengmian | longtext | NO | NO | 封面 |
NO.6 | yinxingmingcheng | varchar(200) | NO | NO | 银行名称 |
NO.7 | zixundianhua | varchar(200) | NO | NO | 咨询电话 |
NO.8 | daikuanjine | int(11) | NO | NO | 贷款金额 |
NO.9 | shiyongtiaojian | longtext | NO | NO | 适用条件 |
NO.10 | haikuanfangshi | varchar(200) | NO | NO | 还款方式 |
NO.11 | daikuanshizhang | varchar(200) | NO | NO | 贷款时长 |
NO.12 | nianlilv | varchar(200) | NO | NO | 年利率 |
NO.13 | haikuanliucheng | longtext | NO | NO | 还款流程 |
表 4-20 银行卡信息(yinxingka)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | yonghuming | varchar(200) | NO | NO | 用户名 |
NO.4 | zhenshixingming | varchar(200) | NO | NO | 真实姓名 |
NO.5 | yinxingmingcheng | varchar(200) | NO | NO | 银行名称 |
NO.6 | kadeleixing | varchar(200) | NO | NO | 卡的类型 |
NO.7 | kahao | varchar(200) | NO | NO | 卡号 |
NO.8 | yue | float | NO | NO | 余额 |
NO.9 | userid | bigint(20) | NO | NO | 用户id |
表 4-21 银行信息(yinxingxinxi)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | yinxingmingcheng | varchar(200) | NO | NO | 银行名称 |
NO.4 | yinxingleixing | varchar(200) | NO | NO | 银行类型 |
NO.5 | yinxingzongzichan | varchar(200) | NO | NO | 银行总资产 |
NO.6 | fengmian | longtext | NO | NO | 封面 |
NO.7 | jianjie | longtext | NO | NO | 简介 |
表 4-22 用户信息(yonghu)表
编号 | 数据字段名 | 数据类型 | 允许空 | 是否主键 | 说明 |
NO.1 | id | int | NO | PK | 主键 |
NO.2 | addtime | timestamp | NO | NO | 创建时间 |
NO.3 | yonghuming | varchar(200) | NO | NO | 用户名 |
NO.4 | mima | varchar(200) | NO | NO | 密码 |
NO.5 | zhenshixingming | varchar(200) | NO | NO | 真实姓名 |
NO.6 | touxiang | longtext | NO | NO | 头像 |
NO.7 | shoujihao | varchar(200) | NO | NO | 手机号 |
NO.8 | youxiang | varchar(200) | NO | NO | 邮箱 |
NO.9 | shenfenzheng | varchar(200) | NO | NO | 身份证 |
NO.10 | xinyudu | varchar(200) | NO | NO | 信誉度 |
第五章 系统详细设计
5.1 基于Django的大学生理财及记账系统网站前台部分设计
5.1 基于Django的大学生理财及记账系统网站前台部分设计
5.1.1 系统首页
本系统是一个专门针对基于Django的大学生理财及记账系统的网站,为了满足用户的操作习惯,我们在页面设计的时候大量的参考了一些成功网站的布局。在首页布局的时候我们采用的是三段式的布局,在头部是网站的导航菜单,方便用户对各类功能进行点击和操作,中间部分是一些理财相关的信息,基于Django的大学生理财及记账系统网站首页部分具体效果如图5-1所示
图5-1 基于Django的大学生理财及记账系统网站首页界面
5.1.2用户注册
在本基于Django的大学生理财及记账系统是为了让用户学习而开发的,所以网站内可能会有大量的用户,如果不对用户进行区分的话用户在学习的时候根本不知道是谁的理财信息。在注册的时候输入用户名+密码+姓名+联系电话等信息即可完成注册,其中电话部分我们进行了验证,必须是手机号码格式才可以注册,否则会给出相应的提示,并要求重新输入基于Django的大学生理财及记账系统网站用户注册效果如图5-2所示
图5-2 基于Django的大学生理财及记账系统网站用户注册界面
5.1.3用户登录
基于Django的大学生理财及记账系统的用户在注册成功之后账号相关的信息就已经存在了系统中的数据库里了,但是如果不登录还是不能有效的区分用户的理财信息的,这时候就需要用户登录后才可以进行领养相关操作了。在登录界面输入注册时的账号+密码,然后点击登录即可完成登录相关操作,基于Django的大学生理财及记账系统网站用户登陆界面如图5-3所示
图5-3 基于Django的大学生理财及记账系统网站用户登陆界面
5.1.4新闻公告
为了让用户了解更多的和理财相关的新闻资讯我们开发了新闻公告模块,在新闻公告模块中用户可以看到最新的一些学习相关的新闻资讯信息,基于Django的大学生理财及记账系统网站新闻公告列表界面效果如图5-4所示
图5-4 基于Django的大学生理财及记账系统网站新闻公告列表界面
当用户在新闻资讯中点击了新闻资讯的标题之后可以看到学习相关新闻资讯的详细信息,基于Django的大学生理财及记账系统网站新闻公告详情界面如图5-5所示
图5-5 基于Django的大学生理财及记账系统网站新闻公告详细界面
5.2 基于Django的大学生理财及记账系统网站后台部分设计
5.2.1管理员登录模块的实现
基于Django的大学生理财及记账系统后台主要是给管理员使用的,这些需要登录以后才可以对系统内的一些功能进行操作,所以系统打开之后的第一个界面就是登录界面,在登录界面中输入不同类型的账号和密码并选择角色即可完成登录,后台登录界面5-12所示
图5-12 基于Django的大学生理财及记账系统网站管理员登录页面
5.2.2用户管理
基于Django的大学生理财及记账系统的操作人员可以管理用户的相关内容,在用户管理中输入对应的主键+创建时间+用户名+密码+真实姓名+头像+手机号+邮箱+身份证+信誉度等基本信息后点击用户管理中的[立即提交]按钮,基于Django的大学生理财及记账系统会将输入的信息通过POST的方式将数据提交给yonghu_view(视图层),然后yonghu_view通过提交的yonghu对象将数据提交给yonghuModel,然后yonghuModel将数据添加到数据库中,为了防止插入null的数据,我们对控件进行了required设置,这在一定程度上提高了数据的健壮性。 基于Django的大学生理财及记账系统用户信息添加界面如图5-13
图5-13用户添加页面
基于Django的大学生理财及记账系统的相关人员在上一步中对用户进行了数据的添加之后还可以根据关键字使用Like语法进行相关内容分模糊查询。此外当录入的数据有误的时候还可以通过[修改]按钮对用户信息相关数据进行修改和订正,当数据因为一些原因不在需要的时候可以通过[删除]按钮删除用户信息中不需要的数据。基于Django的大学生理财及记账系统用户管理界面如图5-14所示
图5-14用户管理列表页面
5.2.3工资理财管理
基于Django的大学生理财及记账系统的操作人员可以管理工资理财的相关内容,在工资理财管理中输入对应的主键+创建时间+产品名称+产品类型+每月投入金额+是否自动转入+封面+投资期限+最近点击时间+点击次数等基本信息后点击工资理财管理中的[立即提交]按钮,基于Django的大学生理财及记账系统会将输入的信息通过POST的方式将数据提交给gongzilicai_view(视图层),然后gongzilicai_view通过提交的gongzilicai对象将数据提交给gongzilicaiModel,然后gongzilicaiModel将数据添加到数据库中,为了防止插入null的数据,我们对控件进行了required设置,这在一定程度上提高了数据的健壮性。 基于Django的大学生理财及记账系统工资理财信息添加界面如图5-1
图5-15工资理财添加页面
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
不同开发语言专栏推荐订阅:
👇下方有我的微信名片👇