def createApplication(manifestText, manifestSrc, manifestObj = None): try: if not manifestObj: manifestObj = json.loads(manifestSrc) name = manifestObj['name'] baseURL = manifestObj['base_url'] icon96 = None if 'icons' in manifestObj: if '96' in manifestObj['icons']: icon96 = manifestObj['icons']['96'] else: key = manifestObj['icons'].keys()[0] icon96 = manifestObj['icons'][key] description = manifestObj['description'] a = Application(name, manifestSrc, manifestText, baseURL, datetime.now(), icon96, description) session.add(a) session.commit() return a except sqlalchemy.exc.IntegrityError: session.rollback() raise ValueError("An application is already registered for that launch URL.") except Exception, e: logging.exception(e) session.rollback() raise ValueError("Unable to create application")
def post_data(data): check = session.query(User).filter_by( public_display_name=data['public_display_name']) if check == None: raise Exception( 'This username is in use. Please, enter another username') else: public_display_name = data['public_display_name'] last_user = session.query(User).order_by(User.id.desc()).first() session.add( User(first_name=data["first_name"], last_name=data['last_name'], public_display_name=public_display_name, about_me=data['about_me'], profile_link=data['profile_link'], email=data['email'], password=data['password'])) session.commit() last_user = session.query(User).order_by(User.id.desc()).first() session.add( PurchaseSettings(id=last_user.id, credit_card='', id_user=last_user.id, id_plan=1)) session.commit()
def make_user(login_session): new_user = User(name=login_session['username'], email=login_session['email']) session.add(new_user) session.commit() user = session.query(User).filter_by(email=login_session['email']).one() return user.id
def createApplication(manifestText, manifestSrc, manifestObj=None): try: if not manifestObj: manifestObj = json.loads(manifestSrc) name = manifestObj["name"] baseURL = manifestObj["base_url"] icon96 = None if "icons" in manifestObj: if "96" in manifestObj["icons"]: icon96 = manifestObj["icons"]["96"] else: key = manifestObj["icons"].keys()[0] icon96 = manifestObj["icons"][key] description = manifestObj["description"] a = Application(name, manifestSrc, manifestText, baseURL, datetime.now(), icon96, description) session.add(a) session.commit() return a except sqlalchemy.exc.IntegrityError: session.rollback() raise ValueError("An application is already registered for that launch URL.") except Exception, e: logging.exception(e) session.rollback() raise ValueError("Unable to create application")
def EditItem(item_id): if 'username' not in login_session: return redirect(url_for('Login')) item = session.query(Item).filter_by(id=item_id).one() if item.user_id != userid_by_email(login_session['email']): return "You are not the owner of this item." if request.method == 'GET': categories = session.query(Category).all() item_to_edit = session.query(Item).filter_by(id=item_id).one() return render_template('edititem.html', categories=categories, item=item_to_edit) if request.method == 'POST': item_to_edit = session.query(Item).filter_by(id=item_id).one() file = request.files['new-item-image'] filename = save_image(file) add_photo_to_database(filename, item_to_edit) submitted_category = request.form['category'] item_category = potential_new_category(submitted_category) item_to_edit.name = request.form['new-item-name'] item_to_edit.description = request.form['new-item-description'] item_to_edit.category = item_category session.add(item_to_edit) session.commit() flash('Item updated.') return redirect(url_for('MyItems'))
def save(obj): try: session.add(obj) session.commit() except Exception, e: logging.exception(e) session.rollback() raise ValueError("Unable to save object")
def post(self): form = AddTestPagerForm(request.form) if form.validate(): # 接收前台数据 choiceSize = int(request.form["choiceSize"]) choiceScore = int(request.form["choiceScore"]) shortAnswerSize = int(request.form["shortAnswerSize"]) shortAnswerScore = int(request.form["shortAnswerScore"]) programSize = int(request.form["programSize"]) programScore = int(request.form["programScore"]) type = request.form["type"] name = request.form['name'].strip() # 试卷的总分等于 = # 选择器的个数*单个选择题的分值 + 简答题的个数*单个简答题的分值 + 程序设计题的个数*单个程序设计提的分值 totalscore = (choiceSize*choiceScore) + (shortAnswerSize*shortAnswerScore) + (programSize*programScore) count_choice = db_session.query(Choice).filter(Choice.choice_type==type).count() count_short_answer = db_session.query(ShortAnswer).filter(ShortAnswer.short_answer_type==type).count() count_program = db_session.query(Program).filter(Program.program_type==type).count() # 如果数据库选择题的个数小于需要生成的个数 if count_choice < choiceSize: # 把所有的题全部抽出来 choices = db_session.query(Choice).all() message1 = '题库中选择题不够%s个, 现已全部引用' % choiceSize # 如果需要生成的选择题的个数小于数据库中存储的数量 else: choices = db_session.query(Choice).order_by(func.rand(Choice.choice_id))[0:choiceSize] if count_short_answer < shortAnswerSize: short_answers = db_session.query(ShortAnswer).all() message2 = '题库中简答题不够%s个, 现已全部引用' % shortAnswerSize else: short_answers = db_session.query(ShortAnswer).order_by(func.rand(ShortAnswer.short_answer_id))[0:shortAnswerSize] if count_program < programSize: programs = db_session.query(Program).all() message3 = '题库中简答题不够%s个, 现已全部引用' % programSize else: programs = db_session.query(Program).order_by(func.rand(Program.program_id))[0:programSize] # 创建试卷对象 test_pager = TestPager(test_pager_name=name, test_pager_type=type, test_pager_choice_score=choiceScore, test_pager_short_answer_score=shortAnswerScore, test_pager_program_score=programScore, test_pager_choice_num=choiceSize, test_pager_short_answer_num=shortAnswerSize, test_pager_program_num=programSize, test_pager_total_score=totalscore) # 选择题,简答题,程序设计题绑定到试卷中 test_pager.test_pager_choices.extend(choices) test_pager.test_pager_short_answers.extend(short_answers) test_pager.test_pager_programs.extend(programs) db_session.add(test_pager) db_session.commit() content = { # 'message1': message1, # 'message2': message2, # 'message3': message3, 'totalScore': totalscore } return render_template('front/front_add_test_page.html', **content) else: message = form.errors.popitem()[1][0] return render_template('front/front_add_test_page.html', message=message)
def set_team(self): team = self.team exists = session.query(Team.team_id).filter_by(team_name=team).first() if exists: self.team_id = exists.team_id else: new_team = Team(team_name=team) session.add(new_team) session.flush() self.team_id = new_team.team_id
def add_swimmer(self, year): # リレーの全体記録ならis_indivが偽 new_swimmer = Swimmer(name=self.name, sex=self.event // 100, is_indiv=False if self.relay == 5 else True) if new_swimmer.is_indiv: setattr(new_swimmer, f'grade_{year}', self.grade) session.add(new_swimmer) session.flush() self.swimmer_id = new_swimmer.swimmer_id
def post(self): params = self.reqparse.parse_args() new_event = None if session.query(Event).filter_by(event_key = params['eventKey']).first() is None: new_event = Event(params['eventKey'], params['name']) session.add(new_event) else: abort(400, 'event already exists!') session.commit() return jsonify({"eventAdded": new_event.as_dict()})
def potential_new_category(name): """ Create a new category unless one by that name exists """ category = session.query(Category).filter_by(name=name).one_or_none() if category: return category if category is None: category = Category(name=name) session.add(category) session.commit() return category
def addIdentity(uid, identifier, displayName, email): try: id = Identity(uid, identifier, displayName, email, datetime.now()) session.add(id) session.commit() return id except sqlalchemy.exc.IntegrityError, e: logging.exception(e) session.rollback() raise ValueError("Unable to create identity")
def createPurchaseForUserApp(uid, appid): try: p = Purchase(uid, appid, datetime.now()) session.add(p) session.commit() return p except Exception, e: logging.exception(e) session.rollback() raise ValueError("Unable to create purchase")
def save(self): self.before_save() try: if 'SQL' in self.errors: del self.errors['SQL'] if len(self.errors) > 0: return False session.add(self) session.commit() return True except IntegrityError, e: self.errors['SQL'] = e.message return False
def createCategory(name, parent=None): try: if parent and (len(parent) == 0 or parent == 0): parent = None c = Category(name, parent=parent) session.add(c) session.commit() return c except Exception, e: session.rollback() raise ValueError("Error while creating category: %s" % e)
def createUser(): try: u = User() session.add(u) session.commit() return u except sqlalchemy.exc.IntegrityError, e: logging.exception(e) session.rollback() raise ValueError("Unable to create user")
def post(self): form = AddProgramForm(request.form) if form.validate(): type = form.type.data content = form.content.data result = form.result.data program = Program(program_type=type, program_content=content, program_result=result) db_session.add(program) db_session.commit() return self.__render('success') else: message = form.errors.popitem()[1][0] return self.__render(message=message)
def post(self): form = AddShortAnswerForm(request.form) if form.validate(): type = form.type.data content = form.content.data result = form.result.data short_answer = ShortAnswer(short_answer_type=type, short_answer_content=content, short_answer_result=result) db_session.add(short_answer) db_session.commit() return self.__render('success') else: message = form.errors.popitem()[1][0] return self.__render(message=message)
def initialize_stats_table(): session.query(Stats).delete() session.commit() for pool in [0, 1]: for sex in [1, 2]: for style_and_distance in [ 11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44, 53, 54, 55, 63, 64, 65, 66, 73, 74, 75 ]: for grade in range(20): event = sex * 100 + style_and_distance session.add(Stats(pool=pool, event=event, grade=grade)) session.commit()
def add_photo_to_database(filename, item): if filename is not None: file_path = UPLOAD_FOLDER + filename file = open(file_path, "r") file_contents = file.read() file.close() os.remove(file_path) new_filename = 'itemimg-' + str(item.id) + '-' # give the file a unique name to avoid browser caching stale images new_filename += str(id(file_contents)) + '.jpg' new_file_path = UPLOAD_FOLDER + new_filename new_file = open(new_file_path, "w") new_file.write(file_contents) new_file.close() save_image_as_jpg(UPLOAD_FOLDER + new_filename) item.photo_path = "/static/images/" + new_filename session.add(item) session.commit()
def post_test_pager(): form = PostTestPagerForm(request.form) if form.validate(): id = form.id.data test_time = form.test_time.data test_class = form.test_class.data test_pager = db_session.query(TestPager).filter(TestPager.test_pager_id==id).first() if test_pager: try: # 编辑试卷 test_pager.test_pager_test_time = test_time test_pager.test_pager_publish = True # 考试时间可能设置不满足时间条件 test_pager.test_pager_classes.append(Class(class_name=test_class)) db_session.commit() # 将试卷信息绑定到班级的学生中 classes = db_session.query(Class).filter(Class.class_name == test_class).all() testPagers = [] # 创建一个列表,用来保存试卷,往前端页面传 for cls in classes: testPagers.extend(cls.class_test_pagers) for cls in classes: if cls.class_test_pagers is not []: # 存在班级试卷 stus = cls.class_students if stus: # 遍历学生,为每个学生绑定上试卷 for stu in stus: # 遍历试卷,绑定多份试卷于学生 for pager in testPagers: # 添加本次发布的试卷,避免重复添加数据库 if pager.test_pager_id == int(id): score = Score(score_test_pager_id=pager.test_pager_id, score_student_id=stu.student_id) db_session.add(score) db_session.commit() return 'success' except Exception as err: return '考试时间不合法' else: return '数据中不存在本张试卷' else: message = form.errors.popitem()[1][0] return message
def post(self): form = AddChoiceFrom(request.form) if form.validate(): type = form.type.data content = form.content.data option_A = form.option_A.data option_B = form.option_B.data option_C = form.option_C.data option_D = form.option_D.data result = form.result.data parse = form.parse.data choice = Choice(choice_type=type, choice_content=content, choice_option_A=option_A, choice_option_B=option_B, choice_option_C=option_C, choice_option_D=option_D, choice_result=result, choice_parse=parse) db_session.add(choice) db_session.commit() return self.__render('success') else: message = form.errors.popitem()[1][0] return self.__render(message=message)
def post(self): form = AddStudentForm(request.form) if form.validate(): name = form.name.data phone = form.phone.data email = form.email.data password = form.password.data class_ = form.class_.data stu = Student(student_name=name, student_phone=phone, student_email=email, student_password=password) stu.student_class = Class(class_name=class_) db_session.add(stu) db_session.commit() return self.__render(message='恭喜您!用户添加成功') else: errors = form.errors error = errors.popitem()[1][0] return self.__render(error)
def post(self): form = AddTeacherForm(request.form) if form.validate(): name = form.name.data phone = form.phone.data email = form.email.data password = form.password.data class_ = form.class_.data teach = Teacher(teacher_name=name, teacher_phone=phone, teacher_email=email, teacher_password=password) class1 = Class(class_name=class_) class1.class_teachers.append(teach) db_session.add(teach) db_session.commit() return self.__render(message='恭喜您!用户添加成功') else: errors = form.errors error = errors.popitem()[1][0] return self.__render(error)
def post(self): form = AddUserForms(request.form) if form.validate(): name = form.name.data phone = form.phone.data email = form.email.data password = form.password.data is_super = form.is_super.data user = Admin(admin_uuid=str(uuid4()), admin_name=name, admin_phone=phone, admin_email=email, admin_password=password, admin_is_super=is_super) db_session.add(user) db_session.commit() return self.__render(message='恭喜您!用户添加成功') else: errors = form.errors error = errors.popitem()[1][0] return self.__render(error)
def AddNewItem(): if 'username' not in login_session: return redirect(url_for('Login')) if request.method == 'GET': categories = session.query(Category).all() return render_template('additem.html', categories=categories) if request.method == 'POST': form_data = request.form item_category = potential_new_category(submitted_category(form_data)) file = request.files['item-image'] filename = save_image(file) newItem = Item(name=request.form['item-name'], description=request.form['item-description'], category=item_category, user_id=login_session['user_id']) session.add(newItem) session.commit() add_photo_to_database(filename, newItem) flash('Item added successfully.') return redirect(url_for('FrontPage'))
def scan(self): # init scan model scan = Scan() scan.scan_started_at = datetime.now() scan.scan_by = User.current_user() for key, value in self.selectMapper.iteritems(): for plug in value['plugins']: options = getFormValue(plug.options) for ret in plug.execute(options): finding = Finding(**ret) if not finding.name: finding.name = plug.name finding.scan = scan finding.plugin_name = plug.name finding.plugin_group = plug.group finding.plugin_options = str(options) scan.findings.append(finding) scan.scan_finished_at = datetime.now() try: session.add(scan) session.add_all(scan.findings) session.commit() except IntegrityError, e: QMessageBox.information(self, u"SQL错误", u"扫描结果储存失败\n" + e.message)
def save_sms(self, type, name, number, content, create_at): sms = session.query(Sms).filter_by(number=number, create_at=create_at).first() if not sms is None: # 重复的短信 raise DuplicateError sms = Sms() sms.create_at = create_at sms.number = number sms.type = type sms.content = content if not name is None: name = name.replace(' ', '') name = name.replace('!', '') name = name.replace(u'!', '') if not name is None: # 保存联系人 contact_phone_items = session.query(Contact, Phone). \ filter(Contact.id == Phone.contact_id). \ filter(Phone.number == number).all() if len(contact_phone_items) > 0: # 已有联系人 contact, phone = contact_phone_items[0] else: # 新建联系人 contact = session.query(Contact).filter_by(name=name).first() if contact is None: contact = Contact(name=name) session.add(contact) phone = Phone(number) phone.contact = contact contact.adjust_name() session.commit() sms.contact = contact sms.phone = phone self.smses.append(sms)
def post(self): params = self.post_reqparse.parse_args() linkedin_info = params['linkedinInfo'] event_key = params['eventKey'] # find matching event (validating QR code) event_id = None matched_event = session.query(Event).filter_by(event_key = event_key).first() if matched_event: event_id = matched_event.as_dict()['eventId'] else: abort(400, 'No event matched this key!') # add a user and their photo if they don't already exist matching_user = session.query(Entity).filter_by(name = linkedin_info['formattedName']).first() user_id = None if matching_user is None: if (linkedin_info['pictureUrls'] and len(linkedin_info['pictureUrls']['values']) > 0): new_user = Entity(str(linkedin_info['formattedName']), str(linkedin_info['pictureUrls']['values'][0])) session.add(new_user) session.commit() user_id = new_user.as_dict()['userId'] else: abort(400, 'No profile pictures for the authenticated user') else: user_id = matching_user.as_dict()['userId'] # add that user's linkedin info for a specific event, if it doesn't already exist if session.query(EmployerInfo).filter_by(user_id = user_id, event_id = event_id).first() is None: summary = linkedin_info['summary'] if 'summary' in linkedin_info.keys() else 'Nothing to see here...' headline = linkedin_info['headline'] if 'headline' in linkedin_info.keys() else 'Talk to me to find out more!' email = linkedin_info['emailAddress'] if 'emailAddress' in linkedin_info.keys() else 'No email found.' user_info = EmployerInfo(user_id, event_id, summary, headline, linkedin_info['publicProfileUrl'], email) session.add(user_info) session.commit() # add positions if 'values' in linkedin_info['positions'].keys(): for position in linkedin_info['positions']['values']: date_start = str(position['startDate']['month']) + "/" + str(position['startDate']['year']) date_end = str(position['endDate']['month']) + "/" + str(position['endDate']['year']) if 'endDate' in position.keys() else None position_to_add = EmployerJob(user_info.as_dict()['employerInfoId'], position['location']['name'], position['title'], position['company']['name'], date_start, date_end, position['isCurrent']) session.add(position_to_add) session.commit() return "Success!"
def saveCount(countObject): # Save the serialzied object in DB session.add(countObject) session.commit()
data = dict() for li in ul: try: data['name'] = li.xpath(".//a/text()")[0].strip() except Exception, e: data['name'] = "" try: data['url'] = li.xpath(".//a/@href")[0].strip() except Exception, e: data['url'] = "" try: sg = SegmentFault(**data) session.add(sg) session.commit() spider_logger.info("Data: INSERT SUCCESS") except Exception, e: spider_logger.error("Data: INSERT ERROR: %s" % str(e)) return data def douban_movie_parse(html_content): if html_content == '': return "" else: try: dom = fromstring(html_content) except Exception, e:
elif c != 0: print("3 位数:",e,d,c) elif d != 0: print("2 位数:",e,d) else: print("1 位数:",e) """, ) lst = [ pro1, pro2, pro3, pro4, pro5, pro6, pro7, pro8, pro9, pro10, pro11, pro12, pro13, ] for i in lst: db_session.add(i) db_session.commit()
choice_option_D="唯一约束", choice_result="A", choice_parse="MySQL中的约束有默认约束、非空约束、唯一约束、主键约束、外键约束,不包含检查约束。") choice24 = Choice( choice_type="python", choice_content="下面关于孤儿进程和僵尸进程的描述错误的是()", choice_option_A="孤儿进程是父进程退出后子进程还在运行就会变为孤儿进程", choice_option_B="僵尸进程是子进程退出后父进程没有处理子进程退出状态子进程就会成为僵尸", choice_option_C="孤儿进程对系统是有危害的", choice_option_D="僵尸进程对系统是有危害的", choice_result="C", choice_parse= "A B 是对僵尸进程和孤儿进程产生原因的描述,C中孤儿进程会被专门的进程收养不会对系统产生危害,D中大量的僵尸进程会占用系统资源,所以应该尽量避免僵尸进程产生" ) db_session.add(choice1) db_session.add(choice2) db_session.add(choice3) db_session.add(choice4) db_session.add(choice5) db_session.add(choice6) db_session.add(choice7) db_session.add(choice8) db_session.add(choice9) db_session.add(choice10) db_session.add(choice11) db_session.add(choice12) db_session.add(choice13) db_session.add(choice14) db_session.add(choice15) db_session.add(choice16)
@property def admin_password(self): return self._admin_password @admin_password.setter def admin_password(self, raw_admin_password): self._admin_password = generate_password_hash(raw_admin_password) def check_admin_password(self, raw_admin_password): result = check_password_hash(self.admin_password, raw_admin_password) return result # def __len__(self): # return len(self.) if __name__ == '__main__': # # 创建表 Base.metadata.drop_all() Base.metadata.create_all() admin = Admin(admin_uuid=str(uuid4()), admin_name='yang', admin_email='*****@*****.**', admin_password='******', admin_phone='15210212773', admin_is_super=True, admin_is_delete=False) session.add(admin) session.commit() pass