python如何开发一个程序思路_用python编写一个合格的ftp程序,思路是怎样的?

经验

1.一般在比较正规的类中的构造函数。都会有一个verify_args函数,用于验证传入参数。尤其是对于系统传参。

2.并且系统传参,其实后面大概都是一个函数名

例如:python server.py start #start就是server.py里面一个函数,一般在一个类里面

3. 所以verify_args就要用反射判断

if hasattr(server,'start'):

start= getattr(server,'start')

4.对比在构造函数里面,直接self.start()写死的做法。这个方法的优点是,可以调用不止于start,可以调用类似help,restrart等。具有强大的可扩展性。即能升能缩

5.根据这个思路,可以在类里面添加help方法,系统传参,python server.py help

6. 在条件判断语句中,要注意一下判断(父子类)顺序,同级情况下,应该由子类先来

技巧

1) 思考思路时,先保证‘前提’可以实现,不要本末倒置。

2)边写边测试,验证逻辑是否成功,即使服务器端也是一样,初步定义一个可以反馈结果的客户端进行连接。可以善用print进行占位,目的是显示逻辑供以认证

3)编码时:先写逻辑,先占位

4) 若可以有明确的分组,例如一前一后(处理发送,接收处理),最好分函数编写

5)若存在交互,一定要保证对应好,需要一步一步验证。没编写甲方的一步,就要编写乙方的一步,然后测试交互。

6) 切忌不要复杂化,一定要简单化,简单化!!!不到万不得以时不要把问题复杂化。

重零到一

一.起步阶段

1)创建好所有文件夹

2)首先进入的事配置文件,配置好IP_PORT

3) modules文件夹内创建main.py,里面创建LogicHandler类。先pass

4)进入bin,创建入口。入口处创建逻辑类对象

二.主逻辑设计阶段

逻辑设计。由于没有要交互的对象,所以说此类是披着面向对象的面相过程。使用面向过程思想设计

从服务器端的视角出发

1)输入help参数,显示帮助信息

2)输入start参数,启动服务器

3)启动成功后,若有客户端链接上来,接受链接并进入验证阶段,收到客户端的账号密码

4)读取db下的user.cfg文件进行验证,发送验证失败的通知码和成功提示

5)若成功,保存用户名,保存用户家目录路径,进入命令交互阶段。

6)编写命令交互函数,收到的是以各种函数名开头的命令,使用反射对命令进行分发。

7)依次编写各类函数

8)被分发函数初步定义的是start(),真正地负责启动整个服务器,由于需要用到并发,需要socketserver,所以

要在modlues创建一个ServerHandler.py ,定义ServerHandler类。还是一样,先pass,测试逻辑

三、进入ServerHandler类

1)由于指定要覆写handle函数,所以进入handle函数。先价格while True的循环接收

2)设计出协议头,{'action':'auth','username':'ziyi','password':'123'},也就是第一次接受到的1024字节就是这个json字符串,可以用''' ‘’‘ 字符串在函数中加以注释

编写client,因为需要通信测试功能

1)还是verify_args,因为涉及到系统传递ip和端口。返回ip_port用于链接

2)定义make_connection用于接收ip_port参数链接服务器。注意 self.sock在这里初始化最好

四、编写服务器的交互函数。

编写客户端交互函数

1)想要的情况是 c=ClientHandler()

c.interactive()

2)客户端交互函数第一步就是调用认证功能

五、编写客户端认证功能

1)分两个函数authenticate,get_auth_result,前者获得input输入,后者获得服务器反馈。

2)服务器收到客户端的加工报文后,先打印出来

边写边验证:先不要急着处理先print打印出来是不是和设想的一样。不这样做后面出问题就浪费很多时间。

六、回到客户端交互函数继续完善。

1)构想是借由input函数获得输入,加工后分发到类的其他函数。

2)首先是upload函数,文件上传函数

七、编写客户端文件上传函数。

1)产生json字符串,action键指定为‘upload',先编写发送部分,接收部分待服务器验收之后编写

2)然后编写服务器对应的上传服务函数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值