def register(): error = None if request.method == 'POST': ID = request.form['ID'] name = request.form['name'] pwd = request.form['pwd'] pwd_confirm = request.form['pwd_confirm'] error = None if not ID: error = 'Username is required.' elif not pwd: error = 'Password is required.' elif not pwd == pwd_confirm: error = 'Password is not the same.' elif User.query.filter_by(username=ID).first() is not None: error = 'User {} is already registered.'.format(ID) return redirect(url_for('frame.index1', error=error)) if error is None: new_client = User(username=ID, password=generate_password_hash(pwd), name=name) db1.add(new_client) db1.commit() db1.remove() error = 'register success' return redirect(url_for('frame.index1', error=error)) flash(error) return redirect(url_for('frame.index1', error=error))
def synchronize_players(clan_id): logger.info("synchronize_players(" + clan_id + ")") logger.info("Clan member synchronization triggered for " + str(clan_id)) from model import db_session clan_info = get_clan_info.delay(str(clan_id)).wait() logger.info("Synchronizing " + clan_info['data'][str(clan_id)]['abbreviation']) processed = set() for player_id in clan_info['data'][str(clan_id)]['members']: player = clan_info['data'][str(clan_id)]['members'][player_id] player_data = get_player_info.delay(str(player['account_id'])).wait() p = Player.query.filter_by(wot_id=str(player['account_id'])).first() if not player_data: if p: processed.add(p.id) # skip this guy later when locking players continue # API Error? since = datetime.datetime.fromtimestamp( float(player_data['data'][str(player['account_id'])]['clan']['since'])) if p: # Player exists, update information processed.add(p.id) p.locked = False p.clan = clan_info['data'][str(clan_id)]['abbreviation'] p.role = player['role'] # role might have changed p.member_since = since # might have rejoined else: # New player p = Player(str(player['account_id']), 'https://eu.wargaming.net/id/' + str(player['account_id']) + '-' + player[ 'account_name'] + '/', since, player['account_name'], clan_info['data'][str(clan_id)]['abbreviation'], player['role']) logger.info('Adding player ' + player['account_name']) db_session.add(p) # Lock players which are no longer in the clan for player in Player.query.filter_by(clan=clan_info['data'][str(clan_id)]['abbreviation']): if player.id in processed or player.id is None or player.locked: continue logger.info("Locking player " + player.name) player.locked = True player.lock_date = datetime.datetime.now() db_session.add(player) try: db_session.commit() logger.info("Clan member synchronization successful") except Exception as e: logger.warning("Clan member synchronization failed. Rolling back database transaction:") logger.exception(e) db_session.rollback() finally: db_session.remove() return True
def ajax_updateuser(): data = request.form.to_dict() data_role = data['role'].split(",") roles = [] for role in data_role: temp = Role.query.filter_by(role=role).first() if temp is not None: roles.append(temp) else: return jsonify({'error': '角色不存在'}) user = User.query.filter_by(id=data['id']).first() user.role = roles db1.add(user) db1.commit() db1.remove() return jsonify() # Return json object to make ajax success.
def file_done(vid_name, socketio): """Updates the clip status once upload is complete""" print "\n\n\n\n\n\n\n CLIP READY \n\n\n\n\n\n\n" # start a scoped session scoped_session = db_session() # get the clip by name clip = scoped_session.query(Clip).filter(Clip.clip_name == vid_name).first() clip_id = clip.clip_id # update status and commit the change to the db clip.clip_status = 'Ready' scoped_session.commit() ready_clips = {} ready_clips['clips'] = [clip_id, clip.start_at, clip.end_at] socketio.emit('server update', ready_clips) # close the session db_session.remove()
def update_vid_status(vid_name, socketio): """Updates the video status once upload is complete""" print "\n\n\n\n\n\n\n VIDEO READY \n\n\n\n\n\n\n" # start db session scoped_session = db_session() #get the video based on the name vid = scoped_session.query(Video).filter(Video.vid_name == vid_name).first() vid_id = vid.vid_id #update the status to be ready vid.vid_status = 'Ready' scoped_session.commit() ready_clips = {} ready_clips['clips'] = [vid_id] socketio.emit('server update', ready_clips) # close the scoped session db_session.remove()
def change_password(): error = None if request.method == 'POST': ID = request.form['ID'] pwd = request.form['pwd'] pwd_confirm = request.form['pwd_confirm'] error = None if not ID: error = 'Username is required.' elif not pwd: error = 'Password is required.' elif not pwd == pwd_confirm: error = 'Password is the same.' if error is None: user = User.query.filter_by(username=ID).first() user.password = generate_password_hash(pwd) db1.add(user) db1.commit() db1.remove() error = 'revise success' # return redirect(url_for('auth.login', error=error)) flash(error) return render_template('change_password.html', error=error)
def pull_text(clips, vid_id): """Goes to video transcript and pulls relevant text""" # hook up to db scoped_session = db_session() # list to hold all pull tuples all_pulls = [] # get the transcript for the selected video transcript = scoped_session.query(Transcript).filter(Transcript.vid_id == vid_id).first() if transcript: for clip in clips: # if the clip object has a page line num if clip.start_pl is not None: # get the timecodes and text for the request page-line nums pull = find_text_by_page_line(clip.start_pl, clip.end_pl, transcript.text) # a tuple is returned for pull (start_at, end_at, pulled_text) start_at, end_at, pull_text = pull # rebind to the db connected clip obj clip = scoped_session.query(Clip).get(clip.clip_id) clip.start_at = start_at clip.end_at = end_at print "pull clip", clip # make a new pull obj for the db new_pull = TextPull(clip_id=clip.clip_id, pull_text=pull_text) scoped_session.add(new_pull) # add new pull and update clip obj with timecodes from transcript scoped_session.commit() print pull_text # close scoped session db_session.remove()
def handle_teardown_request(exception): db_session.remove()
def shutdown_session(exception=None): db_session.remove()
def shutdown_session(exception=None): """closes all sqlalchemy sessions from each query in this in file.""" db_session.remove()
def shutdown_session(exception=None): # exception=None 很重要 db1.remove()
def handle_teardown_request(exception): '''最后一个很重要,这边一定要记住,把这个函数写上。如果没有这个函数,每一个会话以后, db_session都不会清除,很多时候,数据库改变了,前台找不到,或者明明已经提交, 数据库还是没有更改,或者长时间没有访问接口,mysql gong away,这样的错误。总之,一定要加上。''' db_session.remove()