1 # -*- coding utf-8 -*-
2 # coding=utf-8
3
4 """"""
5 """
6
7 """
8 import tornado.ioloop
9 import tornado.web
10
11 # 用来存放上传文件的文件名
12 IMG_LIST = []
13
14 class LoginHandler(tornado.web.RequestHandler):
15 def get(self, *args, **kwargs):
16 self.render('login.html')
17 def post(self, *args, **kwargs):
18 print(self.get_argument('k1'))
19 # 这里write写aaa的会传到login.html里的success里的data参数
20 self.write('aaaaaaa')
21
22
23 class IndexHandler(tornado.web.RequestHandler):
24 def get(self, *args, **kwargs):
25 self.render('index.html',img_list=IMG_LIST)
26
27 def post(self, *args, **kwargs):
28 print(self.get_argument('user'))
29 # 只有获取checkbox多选框需要用get_arguments
30 # 后台获取checkbox都是获取到['on', 'on'],因此为了标识,应该在checkbox中设置value值来区分
31 print(self.get_arguments('favor'))
32 # 对于文件类型,get_argument获取的只是文件名,文件的内容没有拿到
33 # print(self.get_argument('tupian'))
34
35
36 # 下面这段代码是获取文件内容
37 # self.request里面封装了所有请求的内容(get_argument也是调用self.request)
38 file_metas = self.request.files['tupian']
39 print(file_metas) #[{'filename': '搜狗截图17年04月25日0005_2.png', 'body': b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x03\x94\x00\x00\x02S\x08\x06\x00\x00\x00w\xacY\xf0\x00\x00\x00\x01sRGB\x00\xae\xce\x1c\xe9\x00\x00\x00\x04gA
40 # tornado只能通过迭代来取
41 for meta in file_metas:
42 # 获取文件名
43 file_name = meta['filename']
44 import os
45 # 导入os模块进行路径的拼接
46 with open(os.path.join('statics','img',file_name),'wb') as up:
47 up.write(meta['body'])
48 IMG_LIST.append(file_name)
49 self.render('index.html',img_list=IMG_LIST)
50
51
52 settings = {
53
54 'template_path': 'views',
55 'static_path':'statics',
56 'static_url_prefix':'/statics/',
57 }
58
59 application = tornado.web.Application([
60 (r'/login',LoginHandler),
61 (r'/index',IndexHandler),
62
63 ],**settings)
64
65 if __name__=='__main__':
66 application.listen(8888)
67 tornado.ioloop.IOLoop.instance().start()