【独家解析】基于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 需求分析

    1. 系统背景介绍

个人理财的主要对象不像企业那样,是企业的资产和资本这些大量的资金,个人的理财对大多数的人来说就是对个人收入的支配与规划。当代社会个人的收入往往就是工资,这些工资有的是以存入卡形式出现的,有的是现金形式出现的,这两种形式其实本身就为个人理财提供了很大的方便。在存卡形式出现之前,工资往往是完全以现金形式出现的,这就使得人们对收入的规划无序,大多数人遵循着“有多少,花多少”的原则,当然也有不少人利用“记账”的方式进行规划,这其实就是个人财务管理的初级表现之一。

    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 搜索显示

作者:技术分享官

物联沃分享整理
物联沃-IOTWORD物联网 » 【独家解析】基于Python Django的个人记账系统毕业设计(源码详解与最新应用)

发表回复