def register(): """ 用户注册 :param username:用户名 :param password:密码 :return: json """ User = currentUser() if User[0] == False or User[1]['username'] != 'admin': rtn = {'code': -1} return falseReturn(rtn, '没有权限,访问被拒绝') username = request.form.get('username') password = request.form.get('password') usr = Users.query.filter_by(username=username).first() if usr is not None: return falseReturn(-2, '用户名已被注册') user = Users(username=username, password=Users.set_password(username, password)) result = Users.add(username, user) if user.id is not None: returnUser = { 'id': user.id, 'username': user.username, 'login_time': user.login_time } return jsonify(trueReturn(returnUser, "用户注册成功")) else: return jsonify(falseReturn('', '用户注册失败'))
def setconfig(): key = request.args.get('key') value = request.args.get('value') if (set_config(key, value)): return jsonify(trueReturn("null", "设置成功!")) else: return jsonify(falseReturn("null", "设置失败!"))
def identify(self, request): """ 用户鉴权 :return: list """ auth_header = request.headers.get('Authorization') if (auth_header): auth_tokenArr = auth_header.split(" ") if (not auth_tokenArr or auth_tokenArr[0] != 'JWT' or len(auth_tokenArr) != 2): result = common.falseReturn('', '请传递正确的验证头信息') else: auth_token = auth_tokenArr[1] payload = self.decode_auth_token(auth_token) if not isinstance(payload, str): user = Users.get(Users, payload['data']['id']) if (user is None): result = common.falseReturn('', '找不到该用户信息') else: if (user.login_time == payload['data']['login_time']): result = common.trueReturn(user.id, '请求成功') else: result = common.falseReturn('', 'Token已更改,请重新登录获取') else: result = common.falseReturn('', payload) else: result = common.falseReturn('', '没有提供认证token') return result
def pay(): ''' 车辆支付过路费 :param: car:下道车辆 :return:json ''' User = currentUser() if User[0] == False: return falseReturn(User[1]) car = request.form.get("car") if car is None: rtn = { 'code': -1, } return falseReturn(rtn, "参数不完整") toll = Toll.query.filter_by(car=car, status=0).first() rtn = {} if toll is None: rtn = { 'code': -4, } return falseReturn(rtn, "车辆没有上道记录") if toll.fee is not None: toll.status = 1 db.session.add(toll) db.session.commit() return trueReturn("success", "支付成功") rtn = { 'code': -3, } return falseReturn(rtn, "车辆没有下道记录")
def put(self, id): user = current_user() activity = query_activity(id) if activity is None: return jsonify(falseReturn("该活动不存在")) if activity.sponsor_student_number != user.student_number: return jsonify(falseReturn("非法篡改")) try: title = request.form['title'] bt = request.form['begin_time'] et = request.form['end_time'] content = request.form['content'] except: return jsonify(falseReturn("缺少部分必要信息")) try: begin_time = int( time.mktime(time.strptime(bt, "%Y-%m-%d %H:%M:%S"))) end_time = int(time.mktime(time.strptime(et, "%Y-%m-%d %H:%M:%S"))) except: return jsonify(falseReturn("时间格式错误")) activity.title = title activity.content = content activity.begin_time = begin_time activity.end_time = end_time session_commit() return jsonify(trueReturn("修改文章成功"))
def getConfig(): key = request.args.get('key') if (get_config(key)): return jsonify(trueReturn(data=get_config(key), msg="获取成功!")) else: return jsonify(falseReturn("null", "获取失败"))
def delete(self, id): user = current_user() article = query_article(id) if article is None: return jsonify(falseReturn("该文章不存在")) if article.writer_student_number != user.student_number: return jsonify(falseReturn("非法删除,只有该文章的作者才可以删除文章")) Article.delete_article(article) return jsonify(trueReturn("删除文章成功"))
def wikitest(key): return jsonify( trueReturn( '1111', { 'title': '三角函数', 'content': '<p>三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。</p>' }, ''))
def adduser(): name = request.args.get('name').strip() stuNum = request.args.get('stuNum') or None point = request.args.get('point') or get_config('defaultPoint') u = cxf_user(name=name, stu_num=stuNum, now_point=point, group=0) insert(u) return jsonify(trueReturn('null', '添加成功'))
def godown(): ''' 车辆离开高速 :param car:车牌号 :param pos:下道口 :return:json ''' User = currentUser() if User[0] == False: return falseReturn(User[1]) car = request.form.get("car") pos = request.form.get("pos") if car is None or pos is None: rtn = { 'code': -1, } return falseReturn(rtn, "参数不完整") toll = Toll.query.filter_by(car=car, status=0).first() rtn = {} if toll is None: rtn = { 'code': -4, } return falseReturn(rtn, "车辆没有上道记录") if toll.downp is not None: if toll.status is not None: if toll.status == 1: rtn = { 'code': 3, 'fee': toll.fee, 'upp': toll.upp, 'upt': toll.upt.strftime("%Y-%m-%d %H:%M:%S"), 'id': toll.id } return falseReturn(rtn, "车辆已下道且完成付费") rtn = { 'code': 2, 'fee': toll.fee, 'upp': toll.upp, 'upt': toll.upt.strftime("%Y-%m-%d %H:%M:%S"), 'id': toll.id } return falseReturn(rtn, "车辆当前已在下道口但未付费") toll.downp = pos toll.downt = datetime.datetime.now() toll.downu = User[1]['id'] toll.fee = calmoney(toll.upp, pos) db.session.add(toll) db.session.commit() rtn = { 'code': 1, 'fee': toll.fee, 'upp': toll.upp, 'upt': toll.upt.strftime("%Y-%m-%d %H:%M:%S"), 'id': toll.id } return trueReturn(rtn)
def delete(self, id): user = current_user() activity = query_activity(id) if activity is None: return jsonify(falseReturn("该活动不存在")) if activity.sponsor_student_number != user.student_number: return jsonify(falseReturn("非法删除,只有该活动的作者才可以删除该活动")) Activity.delete_activity(activity) return jsonify(trueReturn("删除活动成功"))
def delete(self, id): user = current_user() h = query_history(user.student_number, id) if h is None: return jsonify(true_data_Return("null", "null", "无数据")) History.delete_h(h) return jsonify(trueReturn("删除历史记录成功"))
def getUserInfo(): id = request.args.get('id') u = cxf_user.query.filter_by(uid=id).first_or_404() user = dict() user['id'] = u.uid user['username'] = u.name user['point'] = u.now_point user['stuNum'] = u.stu_num return jsonify(trueReturn(data=user, msg='请求成功'))
def wiki(key): if True: _wiki = Wiki.objects.filter(name=key) # Wiki(name='三角函数', content='<p>三角函数是基本初等函数之一,是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。</p>').save() if _wiki: wiki = _wiki[0] else: return jsonify(falseReturn('0000', '', '无此wiki')) # Wiki 内容 return jsonify(trueReturn('1111', wiki.toJson(), '')) else: return jsonify(falseReturn('000', '', '查询失败'))
def search(): """ search : 查一下 返回分词结果, """ _data = request.get_data() try: _data = json.loads(_data) key = _data['key'] return jsonify( trueReturn('1111', {'data': executer.cutWords(key)}, "success")) except: return jsonify(falseReturn('0000', '', '请求失败'))
def delete(self, student_number): user = current_user() h = query_all_history(student_number) if h is None: return jsonify(true_data_Return("null", "null", "无数据")) for i in h: if i.student_number != user.student_number: return jsonify(falseReturn("非法删除,错误")) else: History.delete_h(i) return jsonify(trueReturn("删除历史记录成功"))
def post(self): user = current_user() try: title = request.form['title'] content = request.form['content'] except: return jsonify(falseReturn("缺少部分必要信息")) article_id = create_id() new = Article(title, user.student_number, article_id, content) db.session.add(new) session_commit() return jsonify(trueReturn("上传文章成功"))
def updateUser(): uid = request.args.get('uid') name = request.args.get('name') stuNum = request.args.get('stuNum') or None point = request.args.get('point') u = cxf_user.query.filter_by(uid=uid).first_or_404() u.name = name u.stuNum = stuNum u.now_point = point update() return jsonify(trueReturn("null", "修改成功!"))
def delete(self): user = current_user() try: attention_id = request.form['attention_id'] except: return jsonify(falseReturn("缺少部分必要信息")) get_one = query_attention(attention_id) if user.student_number != get_one.student_number: return jsonify(falseReturn("非法删除")) if get_one is None: return jsonify(falseReturn("不存在该数据")) Attention.delete_attention(get_one) return jsonify(trueReturn("取消关注成功"))
def getStuList(): try: #按分数从高到低排列 all_list = cxf_user.query.order_by(desc(cxf_user.now_point)).all() all_info = list() for user in all_list: if (user.group == 0): info = dict() info['id'] = user.uid info['name'] = user.name info['point'] = user.now_point all_info.append(info) return jsonify(trueReturn({'stuList': all_info}, msg="success")) except: return jsonify(falseReturn("null", '查询错误!'))
def get(): """ 获取用户信息 :return: json """ User = currentUser() if User[0] == False or User[1]['username'] != 'admin': rtn = {'code': -1} return falseReturn(rtn, '没有权限,访问被拒绝') usrs = db.session.query(Users).all() returnUser = [] for usr in usrs: urd = {'id': usr.id, 'name': usr.username} returnUser.append(urd) return trueReturn(returnUser, "请求成功")
def put(self): try: signature = request.form['signature'] phone_number = request.form['phone_number'] sex = request.form['sex'] nickname = request.form['nickname'] except: return jsonify(falseReturn("缺少部分个人信息")) user = current_user() user.signature = signature user.sex = sex user.phone_number = phone_number user.nickname = nickname db.session.commit() return jsonify(trueReturn("更新个人信息成功"))
def deluser(): try: uid = request.args.get('uid') #通过uid找到所有mid query = cxf_relationships.query.filter_by(uid=uid).all() # 解除关系 for res in query: delete(res) #删除用户 u = cxf_user.query.filter_by(uid=uid).first() delete(u) return jsonify(trueReturn('null', '删除成功!')) except: return jsonify(falseReturn('null', '删除失败!服务器发生了未知错误!'))
def post(self): try: be_attention_student_number = request.form[ 'be_attention_student_number'] except: return jsonify(falseReturn("缺少部分必要信息")) user = current_user() id = create_id() new = Attention(user.student_number, id, be_attention_student_number) db.session.add(new) session_commit() be_attention_user = User.query.filter_by( student_number=be_attention_student_number).first() be_attention_user.be_attention_number += 1 session_commit() return jsonify(trueReturn("关注成功"))
def getUserAction(): id = request.args.get('id') mid_list = list() action_list = list() query = cxf_relationships.query.filter_by(uid=id).all() for res in query: mid_list.append(res.mid) for mid in mid_list: q = cxf_metas.query.filter_by(mid=mid).first() t = dict() t['mid'] = q.mid t['action'] = q.action t['action_score'] = q.action_score t['time'] = q.time action_list.append(t) return jsonify(trueReturn(data=action_list, msg="请求成功!"))
def authenticate(self, username, password): """ 用户登录,登录成功返回token,写将登录时间写入数据库;登录失败返回失败原因 :param password: :return: json """ userInfo = Users.query.filter_by(username=username).first() if (userInfo is None): return jsonify(common.falseReturn('', '找不到用户')) else: if (Users.check_password(Users, userInfo.password, password)): login_time = int(time.time()) userInfo.login_time = login_time Users.update(Users) token = self.encode_auth_token(userInfo.id, login_time) return jsonify(common.trueReturn(token.decode(), '登录成功')) else: return jsonify(common.falseReturn('', '密码不正确'))
def put(self, id): user = current_user() article = query_article(id) if article is None: return jsonify(falseReturn("该文章不存在")) if article.writer_student_number != user.student_number: return jsonify(falseReturn("非法篡改")) try: title = request.form['title'] content = request.form['content'] except: return jsonify(falseReturn("缺少部分必要信息")) print(article.title) article.title = title article.content = content print(article.title) db.session.commit() return jsonify(trueReturn("修改文章成功"))
def deleteu(): """ 删除用户 :param:username:用户名 :return:json """ User = currentUser() if User[0] == False or User[1]['username'] != 'admin': rtn = {'code': -1} return falseReturn(rtn, '没有权限,访问被拒绝') username = request.form.get('username') if username == 'admin': return falseReturn(-1, '不能删除自己') usr = Users.query.filter_by(username=username).first() if usr is None: return falseReturn(-2, '找不到用户') db.session.delete(usr) db.session.commit() return trueReturn("success")
def addAction(): uid = request.args.get('uid') action = request.args.get('value') action_score = request.args.get('point') timeStamp = request.args.get('date') #插入到metas,拿到相应的mid m = cxf_metas(action=action, action_score=action_score, time=timeStamp) insert(m) mid = m.mid #添加关系 rea = cxf_relationships(uid=uid, mid=mid) insert(rea) #计算分数 u = cxf_user.query.filter_by(uid=uid).first() u.now_point = u.now_point + int(action_score) update() return jsonify(trueReturn('', "添加事件成功!"))
def post(self): user = current_user() try: title = request.form['title'] bt = request.form['begin_time'] et = request.form['end_time'] content = request.form['content'] except: return jsonify(falseReturn("缺少必要信息")) try: begin_time = int( time.mktime(time.strptime(bt, "%Y-%m-%d %H:%M:%S"))) end_time = int(time.mktime(time.strptime(et, "%Y-%m-%d %H:%M:%S"))) except: return jsonify(falseReturn("时间格式错误")) activity_id = create_id() sponsor_student_number = user.student_number new = Activity(title, begin_time, end_time, activity_id, sponsor_student_number, content) db.session.add(new) session_commit() return jsonify(trueReturn("创建活动成功"))