def set(): default_pwd = "******" if request.method == "GET": resp_data = {} req = request.args uid = int(req.get("id", 0)) info = None if uid: info = User.query.filter_by(uid=uid).first() resp_data['info'] = info return ops_render("account/set.html", resp_data) resp = {'code': 200, 'msg': '编辑成功', 'data': {}} req = request.values nickname = req['nickname'] if 'nickname' in req else '' email = req['email'] if 'email' in req else '' mobile = req['mobile'] if 'mobile' in req else '' login_name = req['login_name'] if 'login_name' in req else '' login_pwd = req['login_pwd'] if 'login_pwd' in req else '' id = req['id'] if 'id' in req else '0' if nickname is None or len(nickname) < 1: resp['code'] = -1 resp['msg'] = "nickname failed" return jsonify(resp) if email is None or len(email) < 1: resp['code'] = -1 resp['msg'] = "email failed" return jsonify(resp) has_in = User.query.filter(User.login_name == login_name, User.uid != id).first() if has_in: resp['code'] = -1 resp['msg'] = "email failed" return jsonify(resp) user_info = User.query.filter(User.uid == id).first() if user_info: model_user = user_info else: model_user = User() model_user.updated_time = getCurrentDate() model_user.created_time = getCurrentDate() if login_pwd != default_pwd: model_user.login_salt = UserService.genSalt() model_user.login_pwd = UserService.genePwd(login_pwd, model_user.login_salt) model_user.nickname = nickname model_user.email = email model_user.mobile = mobile model_user.login_name = login_name db.session.add(model_user) db.session.commit() return jsonify(resp)
def new_speech(): if request.method == "GET": return ops_render("dong_tai/new_speech.html") resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values title = req['title'] if 'title' in req else '' address = req['address'] if 'address' in req else '' teacher = req['teacher'] if 'teacher' in req else '' email = req['email'] if 'email' in req else '' teacher_intro = req['teacher_intro'] if 'teacher_intro' in req else '' speech_intro = req['speech_intro'] if 'speech_intro' in req else '' app.logger.info(req['time']) app.logger.info(getCurrentDate()) time = req['time'] if 'time' in req else getCurrentDate() app.logger.info(time) # 注意: # input datetime-local控件获取的日期格式是****-**-**T**:**:**,中间有个很奇怪的T,下面的这个函数已经的证明可以将其赋给数据库 #这里和上一个函数原理不同 def deleteT(time): time1 = time[:4] time2 = time[5:7] time3 = time[8:10] time4 = time[11:13] time5 = time[14:] time = time1 + time2 + time3 + time4 + time5 + '00' time = int(time) return time time = deleteT(time) app.logger.info(time) #假吧意思判断两个 if title is None or len(title) > 20: resp['code'] = -1 resp['msg'] = "请输入规范的标题名~~" return jsonify(resp) if address is None or len(address) > 15: resp['code'] = -1 resp['msg'] = "请输入规范的讲座地址~~" return jsonify(resp) speech = Speeches() speech.title = title speech.address = address speech.teacher = teacher speech.teacher_conn = email speech.speech_time = time speech.teacher_intro = teacher_intro speech.speech_intro = speech_intro # 数据库提交 db.session.add(speech) db.session.commit() return jsonify(resp)
def login(): resp = {'code': 200, 'msg': "操作成功", "data": {}} req = request.values code = req['code'] app.logger.info(len(code)) app.logger.info(code) if code == None or len(code) < 10: resp['code'] = -1 resp['msg'] = "需要code" app.logger.info("need code") return jsonify(resp) openid = MemberService.getWeChatOpenId(code) if openid == None: resp['code'] = -1 resp['msg'] = "微信调用登录接口失败" app.logger.info("微信调用登录接口失败") return jsonify(resp) resp["openid"] = openid nickname = req['nickName'] sex = req['gender'] avatar = req['avatarUrl'] bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first() app.logger.debug("bind_info") app.logger.debug(bind_info) if not bind_info: model_member = Member() model_member.nickname = nickname model_member.sex = sex model_member.avatar = avatar model_member.salt = MemberService.genSalt() model_member.created_time = model_member.updated_time = getCurrentDate( ) db.session.add(model_member) db.session.commit() model_bind = OauthMemberBind() model_bind.member_id = model_member.id model_bind.type = 1 model_bind.extra = '' model_bind.openid = openid model_bind.updated_time = model_bind.created_time = getCurrentDate() db.session.add(model_bind) db.session.commit() db.session.flush() bind_info = model_bind member_info = Member.query.filter_by(id=bind_info.member_id).first() token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id) resp['data'] = {'token': token} return jsonify(resp)
def uploadByFile( file ): #保存到服务器目录的同时将路径的存储到数据库中 config_upload = app.config['UPLOAD'] resp = { 'code':200,'msg':'操作成功~~','data':{} } filename = secure_filename( file.filename ) #获取文件名,这个引入的方法可以获取安全的文件名 app.logger.info(filename)#排除不能上传时文件名的问题 ext = filename.split(".",1)[1] #获取扩展文件的扩展名,通过切割.来进行获取。0代表前面的文件名,1代表后面的扩展 if ext not in config_upload['ext']: #判断是否是我们定义的文件类型,根据文件的扩展名进行判断 resp['code'] = -1 resp['msg'] = "不允许的扩展类型文件" return resp root_path = app.root_path + config_upload['prefix_path'] #定义存放路径,app.root_path是app下面的一个方法 #不使用getCurrentDate创建目录,为了保证其他写的可以用,这里改掉,服务器上好像对时间不兼容 file_dir = datetime.datetime.now().strftime("%Y%m%d")#生成文件,这里是按照时间生成文件 save_dir = root_path + file_dir #图片存放路径 if not os.path.exists( save_dir ): #查看这个文件路径是不是存在 os.mkdir( save_dir ) #如果不存在就创建一个 os.chmod( save_dir,stat.S_IRWXU | stat.S_IRGRP | stat.S_IRWXO ) #选择这个目录的操作权限,直接网上查 file_name = str( uuid.uuid4() ).replace("-","") + "." + ext #拼接文件名,uuid是根据硬件和时间生成唯一的一个字符串 file.save( "{0}/{1}".format( save_dir,file_name ) )#将这个文件完整的存放起来,路径加文件名就可以存放 model_image = Image() model_image.file_key = file_dir + "/" + file_name #这里存的只是从日期文件目录那里开始的文件路径,并不是完全的全部路径 #model_image.file_key = save_dir + "/" + file_name #这里存的是完全的路径:就是C:\pytest\appconstruction/web/static/这种的。 model_image.created_time = getCurrentDate() db.session.add( model_image)# db.session.commit() resp['data'] = { 'file_key': model_image.file_key #file_key就是日期加上文件名 ,这里的值model_image.file_key可以替换为save_dir + "/" + file_name } return resp
def new_set(): if request.method == "GET": resp = {} resp['lib_location'] = app.config['LIB_LOCATION'] return ops_render("index/new_set.html", resp) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values title = req['title'] if 'title' in req else '' location = req['location'] if 'location' in req else '' content = req['content'] if 'content' in req else '' # 参数有效性的再次判断的 之前判断了title字数不能小于2,地点名不能少于5个字和content不能为空,这里就暂时鸡肋地随便判断下 if title is None or len(title) > 20: resp['code'] = -1 resp['msg'] = "请输入规范的标题名~~" return jsonify(resp) if location is None or len(location) > 15: resp['code'] = -1 resp['msg'] = "请输入规范的校区图书馆名~~" return jsonify(resp) bulletin = News() bulletin.title = title bulletin.content = content bulletin.location = location bulletin.created_time = getCurrentDate() # 数据库提交 db.session.add(bulletin) db.session.commit() return jsonify(resp)
def ops(): resp = {'code': 200, 'msg': '操作成功~~', 'data': {}} req = request.values id = int(req['id']) if 'id' in req else 0 act = req['act'] if 'act' in req else '' if not id: resp['code'] = -1 resp['msg'] = "请选择要操作的对象~~" return jsonify(resp) if act not in ['remove', 'recover']: resp['code'] = -1 resp['msg'] = "操作有误,请重试~~" return jsonify(resp) news_info = News.query.filter_by(id=id).first() if not news_info: resp['code'] = -1 resp['msg'] = "指定对象不存在~~" return jsonify(resp) if act == "remove": news_info.status = 0 elif act == "recover": news_info.status = 1 news_info.created_time = getCurrentDate() db.session.add(news_info) db.session.commit() return jsonify(resp)
def ops(): resp = {'code': 200, 'msg': '编辑成功', 'data': {}} req = request.values id = req['id'] if 'id' in req else 0 act = req['act'] if 'act' in req else "" if not id: resp['code'] = -1 resp['msg'] = "login_name is already exist" return jsonify(resp) if not act in ['remove', 'recover']: resp['code'] = -1 resp['msg'] = "login_name is already exist" return jsonify(resp) user_info = User.query.filter(User.uid == id).first() if not user_info: resp['code'] = -1 resp['msg'] = "login_name don't exist" return jsonify(resp) if act == "remove": user_info.status = 0 elif act == "recover": user_info.status = 1 user_info.update_time = getCurrentDate() db.session.add(user_info) db.session.commit() return jsonify(resp)
def new_set(): if request.method == "GET": resp_data = {} req = request.args id = int( req.get('id',0) ) info = Books.query.filter_by( id = id ).first() if info and info.status != 1: return redirect( UrlManager.buildUrl("/books_lib/index") ) resp_data['info'] = info resp_data['lib_location'] = app.config['LIB_LOCATION'] resp_data['book_types'] = app.config['BOOK_TYPES'] return ops_render("books_lib/new_set.html", resp_data) resp = {'code': 200, 'msg': '操作成功~~', 'data': {}} req = request.values id = int(req['id']) if 'id' in req and req['id'] else 0 cat_id = int(req['cat_id']) if 'cat_id' in req and req['cat_id'] else 0 title = req['title'] if 'title' in req else '' author = req['author'] if 'author' in req else '' press = req['press'] if 'press' in req else '' intro = req['intro'] if 'intro' in req else '' location = req['location'] if 'location' in req else '' amount = int(req['amount']) if 'amount' in req and req['amount'] else 0 image = req['image'] if 'image' in req else '' if image is None or len(image) < 3: resp['code'] = -1 resp['msg'] = "请上传封面图~~" return jsonify(resp) book_info = Books.query.filter_by(id=id).first() if book_info: model_info = book_info model_info.current_amount = amount # 现在的数量,只有修改已有书籍的时候的才能修改 else: #这里铁定的是第一次上新才能修改 model_info = Books() model_info.status = 1 model_info.current_amount = amount #第一次上新在馆数量和上新数量是一样的 model_info.update_amount = amount #上新数量,只能 第一次 上新书才能更改,不允许出错,因为涉及到新书推荐的地方 model_info.update_time = getCurrentDate() #上新时间,只能第一次上新才能更改 # 这6个均可修改的原因是有可能第一次上新的时候输错了书籍信息 model_info.book_type = cat_id model_info.title = title model_info.author = author model_info.image = image model_info.press = press model_info.intro = intro model_info.location = location db.session.add(model_info) db.session.commit() return jsonify(resp)
def upload_info(): req = request.values global id id = req['id'] if 'id' in req else 0 name = req['name'] if 'name' in req else "" app.logger.info("name:" + name + " no:" + id) student = Student() student.updated_time = getCurrentDate() student.no = id student.name = name student.status = 0 db.session.add(student) db.session.commit() return ""
def set(): if request.method == "GET": resp_data = {} req = request.args id = req['id'] if 'id' in req else '' reback_url = UrlManager.buildUrl("/") info = News.query.filter_by(id=id).first() if not info: return redirect(reback_url) # news_info = News.query.filter(News.id == id).order_by(News.id.asc()).all() resp_data['info'] = info resp_data['lib_location'] = app.config['LIB_LOCATION'] return ops_render("index/set.html", resp_data) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values id = int(req['id']) if 'id' in req else 0 title = req['title'] if 'title' in req else '' location = req['location'] if 'location' in req else '' content = req['content'] if 'content' in req else '' # 参数有效性的再次判断的 之前判断了title字数不能小于2,地点名不能少于5个字和content不能为空,这里就暂时鸡肋地随便判断下 if title is None or len(title) > 20: resp['code'] = -1 resp['msg'] = "请输入规范的标题名~~" return jsonify(resp) if location is None or len(location) > 15: resp['code'] = -1 resp['msg'] = "请输入规范的校区图书馆名~~" return jsonify(resp) bulletin_info = News.query.filter_by(id=id).first() bulletin_info.title = title bulletin_info.content = content bulletin_info.location = location bulletin_info.created_time = getCurrentDate() # 数据库提交 db.session.add(bulletin_info) db.session.commit() return jsonify(resp)
def login(): resp = {'code': 200, 'msg': "success", "data": {}} req = request.values code = req['code'] app.logger.info(req) if code == None or len(code) < 10: resp['code'] = -1 resp['msg'] = "需要code" app.logger.info("need code") return jsonify(resp) openid = UserService.getWeChatOpenId(code) if openid == None: resp['code'] = -1 resp['msg'] = "微信调用登录接口失败" app.logger.info("微信调用登录接口失败") return jsonify(resp) user_model = Users() resp["is_user"] = True user_info = Users.query.filter_by(openid=openid).first() if not user_info: user_model.openid = openid user_model.nickName = req['nickName'] user_model.avatarUrl = req['avatarUrl'] user_model.sex = req['gender'] user_model.createTime = user_model.updateTime = getCurrentDate() db.session.add(user_model) db.session.commit() db.session.flush() resp["is_user"] = False user_info = Users.query.filter_by(openid=openid).first() resp['data'] = { 'nickName': user_info.nickName, 'avatarUrl': user_info.avatarUrl, 'openid': user_info.openid } response = make_response(json.dumps(resp)) response.set_cookie( "sunners", "%s#%s" % (UserService.geneAuthCode(user_info), user_info.id)) return response
def back(): resp_data = {} query = Lending.query query.count() # 这个就是取得总的页数 req = request.values page = int(req['p']) if ('p' in req and req['p']) else 1 # if 'mix_kw' in req: # rule = or_(Lending.title.ilike("%{0}%".format(req['mix_kw'])), # Lending.lending_name.ilike("%{0}%".format(req['mix_kw']))) # query = query.filter(rule) # if 'status' in req and int(req['status']) > -1: # query = query.filter(Lending.status == int(req['status'])) page_params = { 'total': query.count(), 'page_size': app.config['PAGE_SIZE'], 'page': page, 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app.config['PAGE_SIZE'] limit = app.config['PAGE_SIZE'] * page #这里进行条件查询,查询逾期未还的 list = query.filter(Lending.status == 1).all()[offset:limit] resp_data['list'] = list resp_data['pages'] = pages #resp_data['search_con'] = req #resp_data['status_mapping'] = app.config['STATUS_MAPPING'] resp_data['current'] = 'back' resp_data['cur_date'] = getCurrentDate() return ops_render("member/back.html", resp_data)
def set(): default_pwd = "******" if request.method == 'GET': resp_data = {} req = request.args uid = int(req.get('id',0)) user_info = None if uid: user_info = User.query.filter_by(uid=uid).first() resp_data['user_info'] = user_info return ops_render("account/set.html", resp_data) resp ={'code':200,'msg':"操作成功",'data':{}} req = request.values id = req['id'] if 'id'in req else 0 nickname= req['nickname'] if 'nickname' in req else "" mobile = req['mobile'] if 'mobile' in req else "" email = req['email'] if 'email' in req else "" login_name = req['login_name'] if 'login_name' in req else "" login_pwd = req['login_pwd'] if 'login_pwd' in req else "" if nickname is None or len(nickname)<2: resp['code'] = -1 resp['msg'] = '请输入符合规范的姓名' return jsonify(resp) if mobile is None or len(mobile)<2: resp['code'] = -1 resp['msg'] = '请输入符合规范的mobile' return jsonify(resp) if email is None or len(email)<2: resp['code'] = -1 resp['msg'] = '请输入符合规范的email' return jsonify(resp) if login_name is None or len(login_name)<2: resp['code'] = -1 resp['msg'] = '请输入符合规范login_name' return jsonify(resp) if login_pwd is None or len(login_pwd)<6: resp['code'] = -1 resp['msg'] = '请输入符合规范的密码' return jsonify(resp) has_in = User.query.filter(User.login_name == login_name, User.uid!=id).first() if has_in: resp['code'] = -1 resp['msg'] = '登录用户名已存在!' return jsonify(resp) user_info = User.query.filter_by(uid=id).first() if user_info: #编辑 model_user = user_info else: #新增 model_user = User() model_user.created_time = getCurrentDate() model_user.login_salt = UserService.geneSalt() model_user.nickname = nickname model_user.mobile = mobile model_user.email = email model_user.login_name = login_name if login_pwd != default_pwd: model_user.login_pwd = UserService.genePwd(login_pwd,model_user.login_salt) model_user.updated_time = getCurrentDate() db.session.add(model_user) db.session.commit() return jsonify(resp)
def speech_edit(): if request.method == "GET": resp_data = {} req = request.args id = req['id'] if 'id' in req else '' reback_url = UrlManager.buildUrl("/dong_tai/speeches") speech_info = Speeches.query.filter_by(id=id).first() if not speech_info: return redirect(reback_url) # news_info = News.query.filter(News.id == id).order_by(News.id.asc()).all() resp_data['info'] = speech_info return ops_render("dong_tai/speech_edit.html", resp_data) resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values sid = int(req['id']) if 'id' in req else 0 title = req['title'] if 'title' in req else '' address = req['address'] if 'address' in req else '' teacher = req['teacher'] if 'teacher' in req else '' email = req['email'] if 'email' in req else '' teacher_intro = req['teacher_intro'] if 'teacher_intro' in req else '' speech_intro = req['speech_intro'] if 'speech_intro' in req else '' time = req['time'] if 'time' in req else getCurrentDate() app.logger.info(time) #注意: #input datetime-local控件获取的日期格式是****-**-**T**:**:**,中间有个很奇怪的T,下面的这个函数已经的证明可以将其赋给数据库 def deleteT(time): time1 = time[:10] time2 = time[11:] time = time1 + ' ' + time2 + ':00' return time time = deleteT(time) app.logger.info(time) # 假吧意思判断两个,重点是判断时间到底对没对 if title is None or len(title) > 20: resp['code'] = -1 resp['msg'] = "请输入规范的标题名~~" return jsonify(resp) if address is None: resp['code'] = -1 resp['msg'] = "请输入规范的讲座地址~~" return jsonify(resp) speech_info = Speeches.query.filter_by(id=sid).first() speech_info.title = title speech_info.address = address speech_info.teacher = teacher speech_info.teacher_conn = email speech_info.speech_time = time speech_info.teacher_intro = teacher_intro speech_info.speech_intro = speech_intro # 数据库提交 db.session.add(speech_info) db.session.commit() return jsonify(resp)