def post(self, *args, **kwargs): #1 获取客户端提交的内容 name = self.get_argument('username') password = self.get_argument('password') city = self.get_argument('city') avatar = self.request.files.get('avatar', None) #2 判断内容的有效性(判空) if name and password and city: #3 处理头像图片,获得存储头像图片的名称 avatar_file = None #头像图片存储的名称 if avatar: file = avatar[0] #httpFile对象 avatar_file = str(time.time()) + file.filename avatar_body = file.body writer = open('mystatic/images/{}'.format(avatar_file), 'wb') writer.write(avatar_body) writer.close() # 4 写入数据库 pwd = md5(password) # params = (name,pwd,city,avatar_file) # config={ # 'host':'127.0.0.1', # 'port':3306, # 'user':'******', # 'password':'******', # 'database':'blogdb', # 'charset':'utf8' # } # try: # connection = pymysql.connect(**config) # cursor = connection.cursor() # sql='insert into ' \ # 'tb_user(user_name,user_password,user_city,user_avatar)' \ # ' values(%s,%s,%s,%s)' # cursor.execute(sql,params) # cursor.connection.commit()#提交修改 # self.redirect('/') try: dbutil = DBUtil() params = dict(name=name, password=pwd, city=city, avatar_file=avatar_file) dbutil.saveuser(**params) self.redirect('/') #5 处理错误 except Exception as e: print(e) #(1062, "Duplicate entry 'abc' for key 'user_name'") if avatar_file: if exists('mystatic/images/' + avatar_file): remove('mystatics/images/' + avatar_file) self.redirect('/register?regsit=dberror&error=dbfail') else: self.redirect('/register?regist=fail&error=reinput')
def __init__(self,handlers,modules,tpath,spath): super().__init__(handlers=handlers,ui_modules=modules,template_path=tpath,static_path=spath) self.db = DBUtil()