def add_group(): form = AddadminForm() if form.validate_on_submit(): name = request.form.get('name') powerlist = request.form.get('powerlist') group = Group(name=name, power=powerlist, addtime=datetime.datetime.now()) group_check = db_session.query(Group).filter( Group.name == name).first() if group_check: flash('用户组已存在') return redirect('/manage/add_group') if len(name) and len(powerlist): try: db_session.add(group) db_session.commit() db_session.close() except: flash("数据库错误!") return redirect('/manage/add_group') flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。") return redirect('/manage/add_group') return render_template("add_group.html", pagename='manage_group', form=form)
def ajax_update_route(): print('ajax_update_route') all_routes = [] for a in current_app.url_map.iter_rules(): if str(a) not in \ ['/static/<path:filename>', '/', '/frame', '/production', '/schedule', 'signing', 'revise', 'hello']: all_routes.append(str(a)) # print("------") # print(len(all_routes)) # print(len(set(all_routes))) # # all_routes.sort() # for r in all_routes: # print(r) result = [] for url in all_routes: q = AuthManager.query.filter(AuthManager.route_name == url).first() if not q: if url[:5] != '/ajax' or url[:4] == '/api': new = AuthManager(route_name=url, permission='', page_url=url) else: new = AuthManager(route_name=url, permission='') result.append(url) db1.add(new) db1.commit() return jsonify({'msg': f'成功,新增URL: {",".join(result)}'})
def upbooks(): getid = request.form.getlist('id') manageid = current_user.id if len(getid) == 1: bookid = getid[0] upstatus = MuGb.query.filter_by(bookid=bookid, manageid=manageid).first() if upstatus: upstatus.status = 1 try: db_session.add(upstatus) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({"state": "数据库错误"}) else: manageid = [] for x in getid: manageid.append(current_user.id) for (getid, manageid) in zip(getid, manageid): try: db_session.query(MuGb).\ filter(MuGb.bookid == getid, MuGb.manageid == manageid).\ update({MuGb.status : 1}) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({"state": "数据库错误"}) return jsonify({'state': 'ok'})
def update_feed(feedid, rset, itemlist: list): # cleanup list of new feeds _itemlist = itemlist.copy() # list of new item's links olditems = Item.query.filter( Item.feedid == feedid).all() # list of old items in feed for iter in olditems: if str(iter.link) in _itemlist: _itemlist.remove(iter.link) # 새 feed가 없고, 이전에도 feed가 없었던 경우 if (len(_itemlist) == 0) and (len(itemlist) == len(olditems)): return False # delete all old feed items # todo: feed별 삭제여부를 지정할 수 있도록 할 것 logger.debug("remove all old items in feed: {}".format(feedid)) for olditem in olditems: db_session.delete(olditem) count = 1 for iter in itemlist: logger.info("processing...: {count} / {length}".format_map({ 'count': count, 'length': len(itemlist) })) count = count + 1 feeditem = update_feeditem(feedid, iter, rset) if feeditem: db_session.add(feeditem) db_session.commit() return True
def register(): "register form handler" # do not let users register anymore if lottery result is open already is_open = (time.time() - app.config['LOTTERY_OPEN_TIME']) >= 0 if is_open: return redirect(url_for('index')) form = RegistrationForm() if form.validate_on_submit(): # verify if the same data already exists in database participant = db_session.query(Pool).filter(or_(Pool.name==form.name.data, Pool.email==form.email.data)).first() if participant: flash('The name or email you gave already exists; please use another name or email.') return redirect(url_for('register')) # do a db write player = Pool(name=form.name.data, email=form.email.data) db_session.add(player) db_session.commit() # store user session session['name'] = form.name.data # redirect to confirmation page return redirect(url_for('confirmation')) return render_template('register.html', title='Registration', form=form)
def post(self): try: args = ruleset_parser.parse_args() feed_id = model_Ruleset.query.count() + 1 feed = model_Ruleset( listUrl = args['listUrl'], encoding = args['encoding'], title = args['title'], description = args['description'], category = args['category'], itemlink = args['itemlink'], nextpagelink = args['nextpagelink'], maxcheckpage = args['maxcheckpage'], itemtitle = args['itemtitle'], itemauthor = args['itemauthor'], itemguidtype = args['itemguidtype'], itemguidfrom = args['itemguidfrom'], itemguid = args['item'], itempub_date = args['itempub_date'], itempub_date_format = args['itempub_date_format'] ) db_session.add(feed) db_session.commit() except: abort(500) return feed_id, 201 pass
def comment(): if request.method == 'POST': commentdata = request.get_json() post_user_id = int(commentdata['post_user_id']) #发表帖子 if commentdata['is_host']: max_group_id = db_session.query(func.max(Comment.group_id)).filter(Comment.from_novel_id == int(commentdata['novel_id'])).first() if max_group_id is None: group_id = 1 else: group_id = int(max_group_id[0]) + 1 new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata["novel_id"]), is_host=True, group_id=group_id, content=commentdata["comment"]) db_session.add(new_comment) db_session.flush() comment_id = new_comment.id db_session.commit() return jsonify(code=1, comment_id=comment_id, group_id=group_id) #回复帖子 else: new_comment = Comment(from_user_id=post_user_id, from_novel_id=int(commentdata['novel_id']), to_user_id=int(commentdata['to_user_id']), is_host=False, group_id=int(commentdata['group_id']), content=commentdata['comment']) db_session.add(new_comment) db_session.flush() comment_id = new_comment.id to_nickname = new_comment.to_user.nickname to_headpic = new_comment.to_user.headpic db_session.commit() return jsonify(code=1, comment_id=comment_id, to_nickname=to_nickname, to_headpic=to_headpic)
def db_add(nick: str, date: str, title: str, text: str) -> None: new_post = Habr(nick, date, title, text) try: db_session.add(new_post) db_session.commit() except: db_session.rollback()
def add_song_to_db(session, song_data): patterns = song_data["patterns"] patterns_json = json.dumps(patterns) sections = song_data["sections"] sections_json = json.dumps(sections) track = model.Track() track.song_id = song_data["song_id"] track.key = song_data["key"] track.title = song_data["title"] track.tempo = song_data["tempo"] track.energy = song_data["energy"] track.artist_name = song_data["artist_name"] track.mode = song_data["mode"] track.time_signature = song_data["time_signature"] track.duration = song_data["duration"] track.loudness = song_data["loudness"] track.artist_id = song_data["artist_id"] track.valence = song_data["valence"] track.audio_md5 = song_data["audio_md5"] track.spotify_track_uri = song_data["spotify_track_uri"] track.patterns = patterns_json track.sections = sections_json track.rotation_duration = song_data["rotation_duration"] db_session.add(track) db_session.commit()
def add_or_update_rating(): movie_id = request.form.get("movie_id") movie_id = int(movie_id) # ERROR: ValueError: invalid literal for int() with base 10: '' print "MOVIE ID", movie_id, type(movie_id) rating_num = request.form.get("rating") user_id = browser_session["user"] if rating_num < 1 or rating_num > 5: flash("Rating must be a whole number from 1 to 5.") return redirect("/movie/%d" % movie_id) rating_in_db = db_session.query(model.Rating).filter(model.Rating.movie_id==movie_id).filter(model.Rating.user_id==user_id).all() if rating_in_db == []: rating = model.Rating(user_id=user_id, movie_id=movie_id, rating=rating_num) print rating.rating db_session.add(rating) else: rating = rating_in_db[0] rating.rating = rating_num print rating.rating db_session.add(rating) db_session.commit() flash("Your rating has been saved!") return redirect("/movie/%d" % rating.movie_id)
def register(): """注册用户""" if request.method == 'GET': return render_template('register.html', error_str='') elif request.method == 'POST': email = request.form['email'] password = request.form['password'] repassword = request.form['repassword'] nickname = request.form['nickname'] validate_code = request.form['validate'] headpic = request.form['head_pic_input'] user_id = db_session.query(User.id).filter(User.email == email).first() nickname_id = db_session.query(User.id).filter(User.nickname == nickname).first() if password != repassword: return render_template('register.html', error_str=u'密码输入前后不一致') elif len(email) < 6 or len(email) > 25: return render_template('register.html', error_str=u'用户名在6到25位之间') elif user_id: return render_template('register.html', error_str=u'用户名已经存在') elif nickname_id: return render_template('register.html', error_str=u'昵称已经存在') elif validate_code != session['validate']: return render_template('register.html', error_str=u'验证码错误') else: new_user = User(email=email, password=password, nickname=nickname, headpic=headpic) db_session.add(new_user) db_session.commit() session['id'] = new_user.id session['email'] = new_user.email session['nickname'] = new_user.nickname session['head_pic'] = new_user.headpic session['is_admin'] = new_user.is_admin return redirect(request.args['backurl'])
def add_silder(): this = 'add' form = AddsilderForm() if form.validate_on_submit(): title = request.form.get('title') url = request.form.get('url') picid = request.form.get('picid') sort = request.form.get('sort') silder = Silder(title=title, url=url, picid=picid, sort=sort) silder_check = db_session.query(Silder).order_by(Silder.id) if len(title): try: db_session.add(silder) db_session.commit() db_session.close() except: flash("数据库错误!") return redirect('/manage/add_silder') flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。") return redirect('/manage/add_silder') return render_template("edit_silder.html", pagename='silder', this=this, form=form)
def add_team(): form = AddTeamForm() if form.validate_on_submit(): title = request.form.get('title') team = Team(title=title, addtime=datetime.datetime.now()) team_check = db_session.query(Team).filter(Team.title == title).first() if team_check: flash('产品组已存在') return redirect('/manage/add_team') if len(title): try: db_session.add(team) db_session.commit() # 记录日志 actions = ('%s%s%s' % ('增加产品组', ':', title)) savelog(actions) db_session.close() except: flash("数据库错误!") return redirect('/manage/add_team') flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。") return redirect('/manage/add_team') return render_template("edit_team.html", pagename='manage_team', this='add', form=form)
def add_or_update_rating(): movie_id = request.form.get("movie_id") rating_num = request.form.get("rating") user_id = browser_session["user"] if type(rating_num) != int or rating_num < 1 or rating_num > 5: flash("Rating must be a whole number from 1 to 5.") return redirect("/movie/%d" % int(movie_id)) rating_in_db = db_session.query( model.Rating).filter(model.Rating.movie_id == movie_id).filter( model.Rating.user_id == user_id).all() if rating_in_db == []: rating = model.Rating(user_id=user_id, movie_id=movie_id, rating=rating_num) print rating.rating db_session.add(rating) else: rating = rating_in_db[0] rating.rating = rating_num print rating.rating db_session.add(rating) db_session.commit() flash("Your rating has been saved!") return redirect("/movie/%d" % rating.movie_id)
def setdf_address(): id = request.get_json().get('id') userid = g.current_user.id addressd = Address.query.filter_by(userid=userid, default=1).first() if addressd: addressd.default = 0 try: db_session.add(addressd) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 0, 'message': '数据库错误'}) setdefault = Address.query.filter_by(id=id).first() setdefault.default = 1 try: db_session.add(setdefault) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 0, 'message': '数据库错误'}) return jsonify({'code': 1, 'message': '设置默认成功'})
def register(): """ this method writes new unique user information into the users table in the database. then creates a new session and directs them to the current game.""" form = forms.RegForm() # if not form. is where the magic happends in flask-wtforms if not form.validate_on_submit(): print form.errors return render_template("signup.html", form=form) name = form.name.data email = form.email.data password = form.password.data latitude = float(form.lat.data) longitude = float(form.long.data) # from here to the comment above this is flask-wtf library. http://flask.pocoo.org/docs/patterns/wtforms/ to read more about this existing = db_session.query(User).filter_by(email=email).first() print existing if existing: flash ('Email is already in use please try again') return redirect(url_for('display_signup')) else: new_user = User(email=email, password=password, name=name, longitude=longitude, latitude=latitude) db_session.add(new_user) db_session.commit() db_session.refresh(new_user) user = db_session.query(User).filter_by(email=email, password=password).one() session['user_id'] = user.id return redirect(url_for('current_game'))
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 db_add(firm: str, args: list) -> None: new_org = ListOrg(firm, args[0], args[1], args[2], args[3], args[4], args[5], args[6]) try: db_session.add(new_org) db_session.commit() except: db_session.rollback()
def add_new_user(bot, update, user_data): '''Логин студента приходит в update message text''' new_user = update.message.text # TODO: Проверка, что такого пользователя нет new_student = Student(username=new_user, role='student') user_data['teacher1'].append( new_user) # Добавляем нового ученика в user_data db_session.add(new_user) # Добавляем студента в базу
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 lock_admin(): getid = int(request.args.get('id')) status = int(request.args.get('status')) thstatus = Manage.query.filter_by(id = getid).first() thstatus.status = status db_session.add(thstatus) db_session.commit() db_session.close() return jsonify({"state":"ok"})
def add_image_to_db(session, filename, artist_name, title): image = model.Image() image.filename = filename image.artist_name = artist_name image.title = title db_session.add(image) db_session.commit()
def process_sign_up(): d = request.form # print "_____________%r" % d # 1) create a User object with form data new_user = User(email=d['email'], password=d['password']) # 2) add object to db db_session.add(new_user) # 3) commit db_session.commit() return render_template("signup.html")
def mutate(self, args, context, info): marker_model = MarkerModel(title=args.get("title"), blurb=args.get("blurb"), latitude=args.get("latitude"), longitude=args.get("longitude")) db_session.add(marker_model) db_session.commit() return CreateMarker(ok=True)
def mutate(self, args, context, info): marker_id = args["marker_id"] marker_model = db_session.query(MarkerModel).get(marker_id) for key in args.keys(): setattr(marker_model, key, args[key]) db_session.add(marker_model) db_session.commit() return UpdateMarker(ok=True)
def upst_to_st(orderid, state, text): orderstate = OrderState(orderid=orderid, state=state, text=text, uptime=datetime.datetime.now()) try: db_session.add(orderstate) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({"state": "数据库错误"})
def _validate_buildinfo(feedid): # todo: 후에 ruleset에서 각각 따로 지정할 수 있도록 할 것 _defaultInterval = 10 # minute buildinfo = BuildInfo.return_item(feedid) if not buildinfo or type(buildinfo) is not BuildInfo: logger.debug("*- initial feed update : {}".format(feedid)) buildinfo = BuildInfo(id = feedid, check_interval = _defaultInterval) db_session.add(buildinfo) db_session.commit() return buildinfo
def signup_complete(): email = request.form.get("email") password = request.form.get("password") pass_validation = request.form.get("passwordvalidation") age = request.form.get("age") occupation = request.form.get("occupation") zipcode = request.form.get("zip") if password == pass_validation: new_user = model.User(email = email, password = password, age = age, occupation = occupation, zipcode = zipcode) db_session.add(new_user) db_session.commit() return render_template("welcome.html", occupation=new_user.occupation)
def ajax_add_role(): data = request.get_data() data = json.loads(data) print('ajax_add_role') print(data) role = data['role'] chi_name = data['chi_name'] # for i in role: # if i > u'\u4e00' or i < u'\u9fff': # return jsonify({'msg': 'Role不能有中文'}) new = Role(role=role, chi_name=chi_name) db1.add(new) db1.commit() return jsonify({'msg': '成功'})
def add_news(): pid = int(request.args.get('pid')) if pid == 1: tsActive = "manage_news" elif pid == 2: tsActive = "help" elif pid == 3: tsActive = "manage_company" this = 'add' form = AddNewsForm() if form.validate_on_submit(): userid = int(request.form.get('userid')) title = request.form.get('title') getcontent = html.escape(request.form.get('editor')) display = int(request.form.get('display')) news = News(pid=pid, title=title, content=getcontent, display=display, userid=userid, teamid=current_user.teamid, addtime=datetime.datetime.now()) news_check = db_session.query(News).filter(News.title == title).first() if news_check: if pid == 1: flash('资讯已存在') elif pid == 2: flash('帮助已存在') return redirect('%s%s' % ('/manage/add_news?pid=', pid)) if len(title) and len(getcontent): try: db_session.add(news) db_session.commit() db_session.close() except: flash("数据库错误!") return redirect('%s%s' % ('/manage/add_news?pid=', pid)) flash("添加成功,<span id='time'>3</span>秒后自动跳转管理页。") return redirect('%s%s' % ('/manage/add_news?pid=', pid)) return render_template("edit_news.html", pagename=tsActive, this=this, pid=pid, form=form)
def login(): phone_number = request.get_json().get('phone_number') password = request.get_json().get('password') touchid = request.get_json().get('touchid') user = Users.query.filter_by(phone=phone_number).first() if not user: return jsonify({'code': 0, 'message': '没有此用户'}) if user.password != password: return jsonify({'code': 0, 'message': '密码错误'}) if user.verify != 0: return jsonify({'code': 0, 'message': '账户还没有通过审核'}) if user.lock != 0: return jsonify({'code': 0, 'message': '账户被锁定'}) if user.touchid != touchid or user.touchid != None: user.touchid = touchid try: db_session.add(user) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 0, 'message': '数据库错误'}) m = hashlib.md5() m.update(str(phone_number).encode('utf-8')) m.update(str(password).encode('utf-8')) m.update(str(int(time.time())).encode('utf-8')) token = m.hexdigest() pipeline = current_app.redis.pipeline() pipeline.hmset('user:%s' % user.phone, { 'token': token, 'company': user.company, 'app_online': 1 }) pipeline.set('token:%s' % token, user.phone) pipeline.expire('token:%s' % token, 3600 * 24 * 30) pipeline.execute() return jsonify({ 'code': 1, 'message': '成功登录', 'userid': user.id, 'token': token })
def cancel_order(): orderid = request.get_json().get('id') cancel = Order.query.filter_by(id=orderid).first() if cancel: cancel.state = 99 try: db_session.add(cancel) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 3, 'message': '数据库错误'}) return jsonify({'code': 1, 'message': '订单取消成功'})
def create_games(): """this method will write to the game table.""" game_title = request.form['game_title'] game_description = request.form['game_description'] existing = db_session.query(Game).filter_by(game_title = game_title).first() if existing: flash ('This game title is already in use please try again for a unique game title.') return redirect(url_for('display_make_game')) else: new_game = Game(game_title=game_title, game_description=game_description) db_session.add(new_game) db_session.commit() db_session.refresh(new_game) game_id = new_game.id return redirect(url_for('display_make_challenge', game_id=game_id))
def up_pro_state(): getid = request.form.getlist('id') getstate = request.form.get('new_p') for i in range(len(getid)): upst = Product.query.filter_by(proid=getid[i]).first() upst.new_p = getstate db_session.add(upst) try: db_session.commit() except Exception as e: print (e) return jsonify({"state":"数据库错误"}) db_session.close() return jsonify({"state":'ok'})
def change_password(): userid = g.current_user.id password = request.get_json().get('password') userinfo = Users.query.filter_by(id=userid).first() if userinfo: userinfo.password = password try: db_session.add(userinfo) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 0, 'message': '数据库错误'}) return jsonify({'code': 1, 'message': '修改密码成功'})
def add_ruleset(): # TODO : add시 flash 메시지를 띄우도록 할 것 # TODO : 이를 위해서는 flash를 위해 세션을 생성할 필요가 있다. # if not session.get('session_id'): # abort(401) logger.debug(request.form) ruleset = Ruleset() set_field(ruleset) db_session.add(ruleset) db_session.commit() return redirect( url_for('my_view.list_ruleset')) # str(request.form) + "\n is checked"
def close_touch(): userid = g.current_user.id touchid = None userinfo = Users.query.filter_by(id=userid).first() if userinfo: userinfo.touchid = touchid try: db_session.add(userinfo) db_session.commit() except Exception as e: print(e) db_session.rollback() return jsonify({'code': 0, 'message': '数据库错误'}) return jsonify({'code': 1, 'message': '指纹关闭成功'})
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 next_challenge(game_id): """ if the user CLICKS on +1 CHALLENGE BUTTON this method will WRITE the challenge to the challenge table in the database and display a new blank form till user presses submit.""" story = request.form.get('story') puzzle = request.form['puzzle'] solution = request.form['correct_solution'] # challenge_position = request.form['challenge_position'] add in a hidden form input that will auto count how many challenges are made if story is None or puzzle is None or solution is None: flash ('Please fill out everything on the page as this is all critical information your players will need in order to play your game.') return redirect(url_for('display_make_challenge')) else: new_challenge = Challenge(game_id=game_id, story=story, puzzle=puzzle, solution=solution) # how do I add a counter? db_session.add(new_challenge) db_session.commit() db_session.refresh(new_challenge) return redirect(url_for('next_challenge', game_id=game_id))
def update_collection(): """can add to collection with card title""" while True: try: card_name = request.form['name'] # checking to see if card is real card from Card class and getting the card card_from_table = db_session.query(Card).filter_by(name=card_name).one() col_itm_card = Collection_item(cards_id = card_from_table.id) db_session.add(col_itm_card) db_session.commit() db_session.refresh(col_itm_card) flash("you've successfully added a card to your collection") return redirect ("/update") except sqlalchemy.orm.exc.NoResultFound: flash("Update countered! Try again") return redirect("/update")
def upload_and_db(title, imgs): """ 把得到的img的url和title上传到七牛,返回的url存入到数据库 """ q = Auth(access_key, secret_key) new_pic = Picture(title=title) db_session.add(new_pic) db_session.flush() picture_id = new_pic.id for img in imgs: print img data = requests.get(img).content new_path = Path(picture=new_pic) db_session.add(new_path) db_session.flush() key_path = key_upload + str(new_path.id) mime_type = "image/jpeg" token = q.upload_token(bucket_name, key_path) ret, info = put_data(token, key_path, data, mime_type=mime_type, check_crc=True) new_path.path_ = qiniu_url + ret['key'] db_session.commit() return picture_id