python淘课之家_python练习——moudule03——选课系统
1 importsocketserver,json,configparser,os,time2
3 STATUS_CODE ={4 200 : "操作成功",5 601 : '操作失败'
6 }7 Base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))8 from conf importsettings9 classFTPHandler(socketserver.BaseRequestHandler):10 defhandle(self):11 whileTrue:12 print("welcome to FTPHander-handle-whileTrue...")13 self.data = self.request.recv(1024).strip()14 if self.data isNone:15 print("Client is closed")16 break
17 print(self.client_address[0])18
19 data =json.loads(self.data.decode())20
21 if data.get('action') == 'auth':22 self._auth(data)23 elif data.get('action') in ('put','get','ls'):24 func = getattr(self,'_%s'%data.get('action'))25 func(data)26 else:27 print('invlid cmd')28 self.send_response(601)29
30
31 def_auth(self,data):32 #print(data)
33 parser =configparser.ConfigParser()34 parser.read(settings.ACCOUNT_FILE)35 section_list =parser.sections()36 if data.get('username') insection_list:37 true_pwd = parser.get(data.get('username'),'password')38 quation = parser.get(data.get('username'),'quation')39 #print(true_pwd,quation)
40 #print(data.get('password'))
41 if true_pwd == data.get('password'):42 #print('1313')
43 self.send_response(200)44
45
46 #def _auth(self,*args,**kwargs):
47 #print(args.center(60,'-'))
48 #parser = configparser.ConfigParser()
49 #parser.read(settings.ACCOUNT_FILE)
50 #section_list = parser.sections()
51 #if args['username'] in section_list:
52 #true_pwd = parser.get(args['username'],'password')
53 #quation = parser.get(args.get['username'],'quation')
54 #if true_pwd == args['password']:
55 #self.send_response(200)
56 #if args.get('username') in section_list:
57 #true_pwd = parser.get(args.get('username'),'password')
58 #quation = parser.get(args.get('username'),'quation')
59 #if true_pwd == args.get('password'):
60 #self.send_response(200)
61
62 def send_response(self,code,data=None):63 response ={'code':code,'msg':STATUS_CODE[code]}64 ifdata:65 response.update( data )66 self.request.send(json.dumps(response).encode())67
68 def verify_data(self,*args):69 pass
70
71 def_put(self,data):72 print('start put......................................................')73 self.verify_data(data)74 if data.get('header') =={}:75 self.send_response(601)76 parser =configparser.ConfigParser()77 parser.read(settings.ACCOUNT_FILE)78 section_list =parser.sections()79 username_of_data = data.get('header').get('username')80 flag = username_of_data insection_list81 #print(flag)
82 ifflag:83 quation = parser.get(username_of_data, 'quation')84 #home_DIR = Base_dir.join('home\%s' % username_of_data)
85 home_DIR = os.path.join(Base_dir,'home\%s' %username_of_data)86 #print(home_DIR)
87 user_exit_file =os.listdir(home_DIR)88 print(user_exit_file)89 size_exited =090 for filePath inuser_exit_file:91 filePath =os.path.join(home_DIR,filePath)92 size_exited +=self.get_FileSize(filePath)93
94 puted_file_size = data.get('file_size')95
96 if puted_file_size > int(quation) -size_exited:97 self.send_response(601)98 else:99 self.send_response(200)100 puted_filename = data.get('filename')101 if puted_filename inuser_exit_file:102 puted_filename = '%s-1'%puted_filename103 #filename = home_DIR.join(puted_filename)
104 filename =os.path.join(home_DIR,puted_filename)105 get_FileSize =0106 with open(filename,"wb") as f:107 while get_FileSize <108 file_data="self.request.recv(1024)109" f.write get_filesize self.request.send>
113 #print(get_FileSize, puted_file_size)
114 self.send_response(200)115 print('put successfully...'.center(60,'-'))116
117
118 defget_FileSize(self,filePath):119 fsize =os.path.getsize(filePath)120 #fsize = fsize / float(1024)
121 #return round(fsize, 2)
122 returnfsize123
124 def_get(self,data):125 print('start get................')126 #self.verify_data(data)
127 if data.get('header') =={}:128 self.send_response(601)129 parser =configparser.ConfigParser()130 parser.read(settings.ACCOUNT_FILE)131 section_list =parser.sections()132 username_of_data = data.get('header').get('username')133 filename = data.get('filename')134 #home of user
135 home_DIR = os.path.join(Base_dir,'home\%s' %username_of_data)136 #abspath
137 filename =os.path.join(home_DIR,filename)138 ifos.path.isfile(filename):139 file_size =os.path.getsize(filename)140 self.send_response(200,{'file_size':'%s'%file_size})141 f = open(filename,'rb')142 for line inf:143 print(line)144 self.request.send(line)145 self.request.recv(1)146 self.send_response(200)147 print("get successfully.....")148 else:149 self.send_response(601)150
151
152 def_ls(self,data):153 print('start ls...')154 self.verify_data(data)155 if data.get('header') =={}:156 self.send_response(601)157 parser =configparser.ConfigParser()158 parser.read(settings.ACCOUNT_FILE)159 section_list =parser.sections()160 username_of_data = data.get('header').get('username')161 flag = username_of_data insection_list162 ifflag:163 home_DIR = os.path.join(Base_dir, 'home\%s' %username_of_data)164 user_exit_file =os.listdir(home_DIR)165 self.request.sendall(json.dumps(user_exit_file).encode())166 for i inuser_exit_file:167 print(i)168
169
170 def _cd(self,*args,**kwargs):171 pass
172
173 if __name__ == '__main__':174 HOST, PORT = settings.Host, settings.PORT
108>
python淘课之家_python练习——moudule03——选课系统相关推荐
- 风变python小课离线版_Python是个什么鬼?为什么医学生朋友圈里都是它!
"医学生去实习,就只能多学习,不看待遇吗?"前几天,有位同学在后台给我留言.仔细了解后才知道,在医院实习了两个月的她, 觉得每天工作都很心累,实习期没有工资不说,有时候还需要24小 ...
- python淘宝cookies抢购_python实现简单爬虫模拟登录淘宝(cookie简介)
试验了一个晚上,python的小爬虫还是挺可爱的,简单几行就可以抓取网页了.如果你和我一样是新手,你可以先去http://blog.csdn.net/column/details/why-bug.ht ...
- python爬取链家_python+scrapy爬虫(爬取链家的二手房信息)
之前用过selenium和request爬取数据,但是感觉速度慢,然后看了下scrapy教程,准备用这个框架爬取试一下. 1.目的:通过爬取成都链家的二手房信息,主要包含小区名,小区周边环境,小区楼层 ...
- python pdf脚本之家_Python实现简单拆分PDF文件的方法
本文实例讲述了Python实现简单拆分PDF文件的方法.分享给大家供大家参考.具体如下: 依赖pyPdf处理PDF文件 切分pdf文件 使用方法: 1)将要切分的文件放在input_dir目录下 2) ...
- python 淘宝滑块验证_python selenium 淘宝滑块验证码 问题
正常打开淘宝等页面,搜索商品和滑块验证码是没有问题的,但是用selenium打开,在多次翻页后出现的滑块验证码就总是失败,无论是手动滑还是代码控制都不可以,目前正在找解决办法... 此问题针对多次翻页 ...
- python爬虫课设报告_python爬虫小说设计报告 相关实例(示例源码)下载 - 好例子网...
开发语言:Python | 大小:0.07M | 发布时间:2020-11-12 | 立即下载 开发语言:Python | 大小:2.24KB | 发布时间:2020-10-23 | 发布人:吴wu ...
- python直播课哪个好_python模块一直播课随记
1.关于pycharm好还是jupyter note好的问题: 分情况,脚本程序开发做爬虫用pycharm并且pyharm的debug能力强支持打断点 不过话说回来 jupyter note本身就可以 ...
- python淘宝cookies抢购_Python实现淘宝秒杀聚划算抢购自动提醒源码
说明 本实例能够监控聚划算的抢购按钮,在聚划算整点聚的时间到达时发出提醒(音频文件自己定义位置)并自动弹开页面(URL自己定义). 同时还可以通过命令行参数自定义刷新间隔时间(默认0.1s)和监控持续 ...
- python淘宝cookies抢购_python获取淘宝登入cookies
重点:去新浪微博登入接口登入 一.代码# coding=utf-8 import requests from selenium.webdriver.common.by import By from s ...
最新文章
- oracle13c迁移,Oracle数据库迁移
- oracle 格式化报表输出,perl的格式化(Format)报表输出实现代码
- jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件
- python websocket server_Python Websocket服务端
- 在PAT上提交Java代码
- 为什么使用@tablename起别名产生的sql语句不能用_10个简单步骤,完全理解SQL
- 一个简单的基于 DirectShow 的播放器 1(封装类)
- C# 通过string路径 获取文件名、文件扩展名、路径
- 微信接口请求次数_微信接口调用次数限制 支付宝微信提现
- thinkpad指纹识别linux,在Ubuntu下启用ThinkPad X250的指纹识别
- Easypanel linux离线安装,easypanel
- 数据中心机房建设中的关键问题都有哪些?
- WebSocket 原理 1
- ubuntu18.04 安装flash。
- Android listview使用适配器时出现 Attempt to invoke virtual method xxxxxxxx on a null object reference问题解决方法
- Python基础——流程控制之循环语句
- python3.6的基础知识
- linux清除历史linux清除history
- 邮箱里的服务器备份是什么,邮件归档和邮件备份,两者有什么区别?
- vscode remote ssh无法建立连接或一直需要输入密码
热门文章
- 【各种接口】USB接口、rj11和rj45
- 4.5 星历(历书)解码
- WinMount开发者刘涛涛
- 「数据压缩03」WAV及AVI的文件格式分析
- MySQL修改root密码的4种方法
- 怎样测试java程序能否运行_(01-04)Java应用程序可以在( )平台上直接运行、测试,该平台包括Java虚拟机(JVM)、Java核心类库和支持文件。...
- 分布式锁--(mysql-redis方式)
- Fluent 嵌套网格(overset)功能讲解与实例操作
- C语言从键盘获取一个小于1000的正数,要求输出它的平方根。
- 条条就要离开上海去南通工作了