Python学习-----项目设计1.0(设计思维和ATM环境搭建)

news2024/11/25 3:01:09

 

目录

前言:

项目开发流程

MVC设计模式

什么是MVC设计模式?

ATM项目要求

ATM项目的环境搭建


前言:

        我个人学习Python大概也有一个月了,在这一个月中我发布了许多关于Python的文章,建立了一个Python学习起步的专栏(https://blog.csdn.net/m0_73633088/category_12186491.html),在这里我非常感谢各位的一路陪伴,你们的支持是我创作的不竭动力。所以这一期,我打算设计一个简单的项目,通过这个项目的设计和方法来总结这个阶段Python的学习成果,同时我也很快进入下一阶段的学习,后面我也会坚持发表博客,让我们一起快乐得学习Python吧,共同进步!

        好了,废话不多说,直接上正题。

项目开发流程

        学习编程的过程中我们会通过编程去做一个小项目,那做一个面向客户的项目具体是一个怎么样的流程呢?同时在开发过程中我们需要考虑什么内容呢?一起来看看吧!

1.需求分析:确定用户的真实需求是怎么样的

(1).确定用户的需求,项目的基本功能

(2).分析项目的可行性以及项目的整体难度

(3).编写需求文档,客户确认

2.项目概要的整体设计:对整个项目进行初步分析和整体设计

1.确定整体的框架,确定技术方向整体思路以及确定框架模型

2.形成一个整体的概要文档

3.项目设计:确定开发时间流程以及时间抽

1.确定开发工作的先后顺序

2.确定时间轴

3.人员分工

4.详细设计:项目功能的具体实现

小组程序员进行讨论:项目的思路、逻辑流程、功能说明、技术点说明。

5.编码:按照预定设计进行代码实现

6.单元测试:基本的检查

7.项目整体测试:对项目按照功能的实现进行具体的测试(软件测试工程师)

8.项目发布

9.后期维护

 以上这些就是一个面向用户的项目开发流程了,大家可以参考参考

 

MVC设计模式

        我们在做一个项目的时候应该怎么去排版代码或者相关功能,才能使这个项目更加直观,可读性强,更容易理解。这时候就应该取用MVC设计模式

什么是MVC设计模式?

        如果有做过项目的小伙伴在最开始最项目的时候,一般我们会把一些功能代码放到同一个执行文件里面去,这时候我们会发现我们的代码几百行!最最最关键的是,如果其中一行出了点小问题就会导致整个代码运行错误,然后又要一行一行去找bug,这会非常麻烦,如果采样MVC设计模块就可以去避免这些问题。 

MVC架构(各司其职):
    高内聚 --> 程序/函数/模块的功能专一化.
    低耦合 --> 功能之间的关联性尽量低
    避免一个错,全部错的情况.提高开发时的项目专注力.更好解决排查问题而衍生出的一个项目开发结构

说明:

M:model-->模块层-->主要负责对数据的操作,增删改查(数据库)
    C:controller-->控制层-->主要负责功能的实现
    v:view-->视图层-->主要负责给用户提供交互,给用户看的东西(前端)

 所以看了这些,大家以后去设计项目的时候就要去考虑考虑MVC设计模式,这样会让你的项目更加完美!

 

ATM项目要求

        大家都去过银行存钱取钱了吧,这些都不陌生了,那么这一期介绍的ATM项目就是做一个模拟银行存钱取钱的功能,以及用户登陆、注册、流水查询等等相关功能,这一期我会详细介绍这个项目的环境搭建要求,以及MVC设计模块等相关功能,在下一期再去讲解代码实现。

项目要求:

假设你是第一次去ATM柜机,首先注册,登录,存钱,查询余额,取钱,存钱,查看流水,退出、退出登陆,注销用户

1.注册

看到ATM机的界面,有注册,登录的按键选择------选择注册

选择注册之后进入注册界面,-------开始注册操作,输入用户名/真名/身份证,设置密码,确认密码【此时会判断,如果两次的密码一致的话,则注册成功;否则就要重新注册】------注册成功

注册成功之后:

成为ATM的用户,也就是ATM系统里拥有属于你自己的账户了,你的用户数据【用户名,密码,余额,流水...】

2.登录

注册成功之后,返回登录界面,输入用户名和密码之后进行登录【判断用户名存在且正确以及密码也正确才可以登陆成功;假如用户名不存在,就需要返回注册界面先注册;如果用户名存在,但是用户名或者密码输入不正确,就得重新登录】,只要用户名和密码都正确的话就可以登录成功

3.存钱

登录成功之后,进入ATM功能操作界面(存钱,取款,转账,查询余额,查看流水账单),选择你想要的存钱操作----放入现金---确认存款---存款成功。存款的数量是属于用户数据,存入数据库

4.查看余额

存钱操作完成之后,会跳转ATM功能操作界面(存钱,取款,转账,查询余额,查看流水账单),选择查看余额这个功能---确认查看---显示出你的余额---退出查看余额界面,又回到了ATM功能操作界面

5.查看流水

从ATM功能操作界面,选择查看流水功能----确认查看---返回流水情况(是否打印凭条)---退出查看流水--又回到了ATM功能操作界面

6.取钱

没有其他操作,直接取钱的话,要先登录,登录之后进入ATM功能操作界面,选择取款功能,输入取款数量,确认取款,取出之后,退出,又回到了ATM功能操作界面。此时存款金额又改变,也就是说用户数据又改变,数据库就要更新。 

 

7.退出登陆

在登陆的情况要避免再次登陆,所有就需要退出此时的转换才可以去登陆其他账号

8.注销

在已经登陆的情况下可以去实现用户的注销,其中会把这个用户的所有数据都删除

ATM项目的环境搭建

        这个是准备工作,实现要准备好一个文件夹,名字为ATM项目,然后在里面要准备相关子文件夹,这些子文件夹都有相对应的代码功能和时间功能,其中文件夹包括:

api文件夹、config文件夹、core文件夹、DB文件夹、lib文件夹,还有一个主程序即执行程序run.py

下面是这些文件夹相关的内容和功能: 

api-->应用程序编程结课-->作案工具-->这一次放的常用的功能模块
    uesr_i.py: 用户功能模块-->注册,登录
    bank_i>py:银行功能模块-->存钱取钱
        
config-->设置-->放配置信息(数据信息/数据库的账号/python环境配置)
    setting.pyu-->这一次放的是项目的配置信息(用户数据保存的位置所作)
    
core-->核心模块-->相当于前端,里面写得是给用户看到/交互的东西写在里面
    # 实现视图层(ATM看到的界面)
    src.py-->交互的内容,启动界面
  
    
DB-->Database-->数据库,这里用json文件去实现数据的保存/读取
    user_data-->这是文件夹,用来存储用户数据的
    db_handle.py__>用来操作数据库内容的模块 1.写入数据 2.查取数据
    
lib-->工具包-->放特殊的功能(装饰器)
    common.py-->写装饰器的地方
    # 判断用户是否登录成功的装饰器
    
run.py-->项目的启动文件
readme.md--> 项目说明文档

这一期先到这里,下一期我会详细讲解代码怎么去写,各位下次见~

分享一张壁纸 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/373725.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业级信息系统开发学习1.3——利用注解配置取代Spring配置文件

文章目录一、利用注解配置类取代Spring配置文件(一)打开项目(二)创建新包(三)拷贝类与接口(四)创建注解配置类(五)创建测试类(六)运行…

史上最经典垃圾回收器(CMS,G1)详解、适用场景及特点、使用命令

文章目录垃圾收集器介绍总结各个垃圾收集器之间的关系垃圾收集器使用命令及默认值详解各个垃圾收集器SerialParNewParallel ScavengeSerial OldParallel OldCMS(Concurrent Mark Sweep)G1(Garbage First)适用场景及推荐垃圾收集器介绍总结 垃圾收集器可以帮助我们进行具体的垃…

HDFS优化

单节点多块磁盘数据均衡 生成HDFS块均衡计划 hdfs diskbalancer -plan node1 执行均衡计划,node1.plan.json均衡计划文件 hdfs diskbalancer -execute node1.plan.json 查看当前均衡任务的执行情况 hdfs diskbalancer -query node1 取消均衡任务hdfs diskbalancer -cancel nod…

(三十九)undo log版本链是个什么东西?

今天我们正式开始切入讲解MySQL中多个事务并发执行时的隔离到底是怎么做的,因为我们知道默认是骚气的RR隔离级别,也就是说脏写、脏读、不可重复读、幻读,都不会发生,每个事务执行的时候,跟别的事务压根儿就没关系&…

移动web基础

初始缩小&#xff1a;布局视口大于视觉视口 初始放大&#xff1a;布局视口小于视觉视口 布局视口等于视觉视口&#xff08;这种动作行为叫做理想视口&#xff09; <meta name"viewport" content"width375" /> <meta name"viewport"…

云原生|kubernetes|网络插件flannel二进制部署和calico的yaml清单部署总结版

前言&#xff1a; 前面写了一些关于calico的文章&#xff0c;但感觉好像是浅尝辄止&#xff0c;分散在了几篇文章内&#xff0c;并且很多地方还是没有说的太清楚云原生|kubernetes|kubernetes的网络插件calico和flannel安装以及切换_calico换flannel_晚风_END的博客-CSDN博客 …

在C#中使用信号量解决多线程访问共享资源的冲突问题

目前在我写的233篇原创文章中&#xff0c;有两篇是粉丝可见的&#xff0c;其中《C#线程的参数传递、获取线程返回值以及处理多线程冲突》这篇文章有179个粉丝关注&#xff0c;看到不断有人关注这篇文章&#xff0c;这表明学习C#的人还是挺多的&#xff0c;感觉文章内容不够厚实…

泛型<E>

泛型 案例引出泛型 按要求写出代码&#xff1a; 在ArrayList中添加3个Dog对象&#xff0c;Dog对象有name和age两个属性&#xff0c;且输出name和age public class test1 {public static void main(String[] args) {ArrayList list new ArrayList();list.add(new Dog(10,&quo…

Python解题 - CSDN周赛第32期 - 运输石油(三维背包)

上期周赛因为最后一题出现bug&#xff0c;再加上都是经典的模板题&#xff0c;问哥就懒得写题解了。 本期也是有两道考过的题目&#xff0c;不过最后一题因为考到了背包问题的特殊类型&#xff0c;还是值得拿出来记个笔记。 第一题&#xff1a;传奇霸业 传奇霸业&#xff0c;是…

Unity高程图生成

序大概就是根据一个灰度图&#xff0c;生成一个地形。分两步来实现吧&#xff1b;首先&#xff0c;用随机数生成地形&#xff1b;然后&#xff0c;根据灰度图生成地形。小白&#xff0c;没啥基础&#xff0c;所以只能慢慢来。参考&#xff1a;【萌新图形学】地形网格生成入门 含…

基于stm32电梯管理系统设计

基于stm32电梯管理系统设计这里记录一下以前自己做的嵌入式课程设计&#xff0c;报告中的图片和文字太多了&#xff0c;全部一个一个把搬过来太麻烦了,需要完整文本和代码自行q我963160156&#xff0c;也可在微信公众号 *高级嵌入式软件* 里回复 *电梯* 查看完整版文章摘要关键…

Oracle Apex 21.2 安装过程

什么是 Oracle APEX&#xff1f; Oracle APEX 是广受欢迎的企业级低代码应用平台。借助该平台&#xff0c;您可以构建功能先进的可扩展安全企业应用&#xff0c;并在任何位置&#xff08;云或内部部署&#xff09;部署这些应用。 使用 APEX&#xff0c;开发人员可快速开发并部…

域组策略自动更新实验报告

域组策略自动更新实验报告 域组策略自动更新实验报告 作者: 高兴源 1要求、我公司为了完善员工的安全性和系统正常漏洞的维护&#xff0c;所以采用域组策略自动更新的方法来提高账户安全性&#xff0c;减少了用户的错误。 1.实验环境如下1台2008r2一台创建域&#xff0c;一台wi…

【云原生】k8s中Pod进阶资源限制与探针

一、Pod 进阶 1、资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时&#xff0c;调度器就使用该信息来决定将 Pod 调度到哪个节点上。当还…

嵌入式 STM32 步进电机驱动,干货满满,建议收藏

目录 步进电机 1、步进电机驱动原理 2、步进电机驱动 3、步进电机应用 1、第一步&#xff1a;初始化IO口 2、设置行进方式 四、源码 步进电机 步进电机被广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业…

_improve-3

createElement过程 React.createElement()&#xff1a; 根据指定的第一个参数创建一个React元素 React.createElement(type,[props],[...children] )第一个参数是必填&#xff0c;传入的是似HTML标签名称&#xff0c;eg: ul, li第二个参数是选填&#xff0c;表示的是属性&#…

String、StringBuffer和StringBuilder的详解

目录 一、String讲解 1.String&#xff08;String字符串常量&#xff09; 2.String 拼接方式与性能的影响 二、StringBuffer 和 StringBuilder 讲解 1.StringBuffer 和 StringBuilder 使用场景:(StringBuffer、StringBuilder字符串变量) 2.StringBuffer的使用 3.StringB…

shell脚本常用命令

shell概述 shell是一个命令行解释器&#xff0c;它接收应用程序/用户命令&#xff0c;然后调用操作系统内核。 shell还是一个功能强大的编程语言&#xff0c;易编写、易调试、灵活性强。 shell解析器 查看系统自带的所有shell解析器 cat /etc/shells查看系统默认的shell解析…

超算中心、并行计算

现在超算中心已经迅速发展 合肥&#xff1a; 合肥先进中心 合肥曙光超算中心平台 合肥安徽大学超算中心 合肥中科大超算中心 合肥中科院超算中心 合肥大一点的公司都会有自己的集群&#xff0c; 超算中心又称为集群&#xff0c;一般集群是小型服务器组成&#xff0c;超…

EasyRecovery16免费的电脑的数据恢复工具

常见的数据恢复有两种方式&#xff0c;第一种方式是找别人恢复&#xff0c;按照市场价来说&#xff0c;数据恢复的价格每次在100-500之间&#xff0c;但这种方式容易使自己设备上的隐私资料泄露出去&#xff0c;不安全。 另一种方式则是自己学会数据恢复的方法&#xff0c;有问…