【独家解析】基于Python Django的个人记账系统毕业设计(源码详解与最新应用)
基于Python的Django个人记账系统
目录
1 需求分析…………………………………………… 1
1.1 系统背景介绍………………………………………… 1
1.2 功能需求分析………………………………………… 1
2 总体设计…………………………………………… 1
2.1系统程序结构设计…………………………………….. 1
2.2 系统用例图………………………………………….. 3
2.3 开发及运行环境………………………………………. 3
3 数据库设计…………………………………………. 4
4 详细设计…………………………………………… 5
4.1 用户注册……………………………………………. 5
4.2 用户登录……………………………………………. 5
4.3 个人中心……………………………………………. 5
4.4 首页(新增收入/支出记录)………………………………. 5
4.5 收入记账管理………………………………………… 5
4.6 支出记账管理………………………………………… 6
4.7 记账图表……………………………………………. 6
4.8 系统其他功能实现…………………………………….. 6
5 代码实现…………………………………………… 7
5.1代码截图……………………………………………. 7
5.2运行截图…………………………………………… 10
6 测试…………………………………………….. 13
7 总结…………………………………………….. 15
1 需求分析
-
- 系统背景介绍
个人理财的主要对象不像企业那样,是企业的资产和资本这些大量的资金,个人的理财对大多数的人来说就是对个人收入的支配与规划。当代社会个人的收入往往就是工资,这些工资有的是以存入卡形式出现的,有的是现金形式出现的,这两种形式其实本身就为个人理财提供了很大的方便。在存卡形式出现之前,工资往往是完全以现金形式出现的,这就使得人们对收入的规划无序,大多数人遵循着“有多少,花多少”的原则,当然也有不少人利用“记账”的方式进行规划,这其实就是个人财务管理的初级表现之一。
-
- 功能需求分析
本系统的最终目的是设计一个名为“TIME 时时记”的个人记账理财系统。对不会自主理财,同时有渴望有一个合理的消费和收入标准的广大用户来说,TIME 时时记系统就非常合适,该系统功能齐全但操作简单。
主要包括用户登录、用户管理、系统记账和图表统计四大功能,能实现用户的注册、登录以及用户信息的修改;实现用户对收入/支出记录的增加、删除、修改和查询。并对最近15天收入/支出的当天总和以柱状图对比显示,对最近15天收入/支出总和的饼状图对比显示。
2 总体设计
2.1系统程序结构设计
OAProject—项目名
├─OAProject # 项目同名文件目录
│ asgi.py# 支持异步网络服务器和应用
│ settings.py # 配置文件
│ urls.py # 根路由,用来控制页面url访问
│ wsgi.py # 帮助Django应用和网络服务器间的通讯
├─OAUser # App目录
│———migrations文件目录 # 修改数据模型时,会自动升级数据库
│ __init__.py # 空文件,允许在项目的其他部分使用它
│——— static文件目录 # 网站渲染所需文件
│—————— login文件目录
│ css文件目录 # 渲染html所需的css文件
│ font文件目录
│ images文件目录 # 渲染html所需的图片
│ js文件目录 # 渲染html所需的js文件
│ __init__.py # 空文件,允许在项目的其他部分使用它
│ admin.py
│ apps.py # app的相关配置
│ froms.py # 该系统登录、注册、收入、支出的表单设计
│ models.py # 该系统创建用户、收入、支出的三张表
│ tests.py
│ urls.py # 网页路由
│ views.py # 视图函数,业务层逻辑代码
├─templates文件目录 # 模板文件(一个一个的html)
│———login文件目录
│ __init__.py # 空文件,允许在项目的其他部分使用它
│ chart.html # 记账图表分析页面
│ income.html # 收入记账管理页面
│ index.html # “TIME 时时记”首页
│ login.html # 用户登录页面
│ pay.html # 支出记账管理页面
│ personal-info.html # 用户个人信息管理页面
│ register.html # 用户注册页面
│ update_income.html # 更新收入记账管理页面
│ update_pay.html # 更新支出记账管理页面
├─manage.py # django启动项目文件
└─temp.html # 图表管理页面
2.2 系统用例图
2.3 开发及运行环境
本系统是基于64位 windows10家庭中文版,处理器Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz 1.80GHz,机带RAM 12.0GB。
开发工具:PyCharm,Navicat 15 for MySQL
3 数据库设计
表1 用户信息表
表序号 |
1 |
表名 |
Users |
|||
含义 |
存储用户的基本信息 |
|||||
序号 |
属性名称 |
含义 |
数据类型 |
长度 |
说明 |
约束 |
1 |
uid |
用户id |
Int |
|
Not nulll |
主键 |
2 |
uname |
用户名 |
varchar |
30 |
Not nulll |
|
3 |
upwd |
密码 |
varchar |
30 |
Not null |
|
4 |
usex |
性别 |
varchar |
30 |
Not nulll |
|
5 |
uemail |
邮箱 |
varchar |
254 |
Not null |
|
6 |
utel |
电话号码 |
bigint |
|
Not null |
|
表2 收入表
表序号 |
2 |
表名 |
Income |
|||
含义 |
存储收入记录 |
|||||
序号 |
属性名称 |
含义 |
数据类型 |
长度 |
说明 |
约束 |
1 |
iId |
收入id |
Int |
|
Not nulll |
主键 |
2 |
iType |
类型 |
varchar |
30 |
Not nulll |
|
3 |
iMoney |
金额 |
decimal |
10 |
Not null |
|
4 |
iRemark |
备注 |
varchar |
55 |
Not nulll |
|
5 |
iTime |
时间 |
date |
|
Not null |
|
表3 支出表
表序号 |
3 |
表名 |
Pay |
|||
含义 |
存储支出记录 |
|||||
序号 |
属性名称 |
含义 |
数据类型 |
长度 |
说明 |
约束 |
1 |
pId |
支出id |
Int |
|
Not nulll |
主键 |
2 |
pType |
类型 |
varchar |
30 |
Not nulll |
|
3 |
pMoney |
金额 |
decimal |
10 |
Not null |
|
4 |
pRemark |
备注 |
varchar |
55 |
Not nulll |
|
5 |
pTime |
时间 |
date |
|
Not null |
|
4 详细设计
4.1 用户注册
新用户可以通过输入用户名、密码、确认密码、邮箱地址、电话号码、性别和验证码进行注册。
在/login/forms.py中添加一个新的表单类,upwd1和upwd2用于输入两遍密码,并进行比较,防止误输密码;uemail是一个邮箱输入框;usex是一个select下拉框。然后在register.html中编写forms相关条目。在/viwes.py/文件中完善register()视图,首先两次输入的密码必须相同,其次不能存在相同用户名和邮箱,最后如果条件都满足,则创建一个用户实例,然后保存到数据库内。
4.2 用户登录
用户注册成功后会跳转至登录页面,输入用户名、密码和验证码,点击登录按钮进入系统首页。
用户通过login.html中的表单填写用户名和密码,并以POST的方式发送到服务器的/1ogin/地址。服务器通过1ogin/views.py 中的1ogin() 视图函数,接收并处理这一请求。
4.3 个人中心
可在顶部导航栏进入个人信息界面,对个人信息进行修改操作。点击保完信息完成信息修改。
4.4 首页(新增收入/支出记录)
选择记账类型(收入/支出),金额,备注和时间,点击保存跳出弹窗,点击确定,这条收入/支出记录就会保存至数据库中并显示在相对应的页面上。
后台通过判断iType是否等于“收入”,是的话就将该条记账信息保存至收入记录页面,不是的话就保存至支出记录页面,首先收入、支出页面分开显示。
4.5 收入记账管理
该页面显示收入的序号、类型、金额、备注和时间。
搜索框:输入要搜索的“备注”中的内容,查找到相关记录;
编辑按钮:点击编辑按钮,进入修改页面,修改内容后点击保存即可;
删除按钮:点击删除按钮,在弹窗上点击确认,删除该条信息。
在views.py中实现了收入记录的查询、修改和删除的功能,将其通过income.html页面显示出来。
4.6 支出记账管理
该页面显示支出的序号、类型、金额、备注和时间。
搜索框:输入要搜索的“备注”中的内容,查找到相关记录;
编辑按钮:点击编辑按钮,进入修改页面,修改内容后点击保存即可;
删除按钮:点击删除按钮,在弹窗上点击确认,删除该条信息。
在views.py中实现了支出记录的查询、修改和删除的功能,将其通过pay.html页面显示出来。
4.7 记账图表
通过Echarts,一款基于JavaScript的数据可视化图表库,根据前面的收入和支出记录,生成最近15天每一天的总收入和总支出的对比柱状图。
根据前面的收入和支出记录,生成最近15天的总收入和总支出的对比饼图,以百分比的形式呈现。
得到当前的年月日信息,判断收入日期和支出日期是否在最近15天内,若在,则计算当天收入和支出金额总和,得到“最近15天的收入与支出”信息对比柱状图,生成一个temp.html文件,显示在chart.html页面上。
将最近15天每一天的收入/支出总金额相加,以饼图的形式对比呈现在chart.html页面上。
4.8 系统其他功能实现
计算收入/支出的记录总条数,将其分为一页十条呈现出来。
5 代码实现
5.1代码截图
5.2运行截图
图5.1 用户注册界面
图5.2 用户登录界面
图5.3 个人中心界面
图5.4 首页
图5.5 搜索显示
作者:技术分享官