def deleteItem(item_name, category_name): ''' Deletes item, only allows creator to delete ''' # check if user is logged in if not 'user_id' in login_session: flash("You need to be logged-in to perform this action", 'error') return redirect('/') item = session.query(Item).filter_by(name=item_name).one() # check if user has permission if login_session['user_id'] != item.user_id: flash("You do not have permissions to edit this item", 'error') return redirect('/') if request.method == 'POST': session.delete(item) session.commit() category = session.query(Category).filter_by( name=category_name).first() itemsLeft = session.query(Item).filter_by(category=category).first() # if there are no more items in category delete it. if itemsLeft == None: session.delete(category) session.commit() flash("menu item deleted!", 'success') return redirect('/') else: return render_template( 'deleteitem.html', item=item)
def createPricelist(): if 'username' not in login_session: return redirect('/oauth/login') else: pass if request.method == 'POST': ### begin custom logic for form ### if request.form['communicated'] == '': communicated = datetime.datetime.now() else: communicated = datetime.datetime.strptime(request.form['communicated'], '%Y-%m-%d') if request.form['vigente'] == 'True': vigente = True else: vigente = False ### end custom logic for form ### user_id = getUserID(login_session['email']) newItem = PriceList(name= request.form['name'], communicated= communicated, user_id= user_id, vigente= vigente, moneda= request.form['moneda'], incoterm= request.form['incoterm']) session.add(newItem) session.commit() flash("new price list created!") return redirect(url_for('pxlst.readPricelists')) else: return render_template('pxlst/createPricelist.html')
def createSku(price_list_id): if 'username' not in login_session: return redirect('/oauth/login') else: pass if request.method == 'POST': price = int(request.form.get('price')) if request.form.get('price2'): price2 = int(request.form.get('price2')) pxlist = price_list_id user_id = getUserID(login_session['email']) newSku = Sku(name = request.form['name'], varietal = request.form['varietal'], price = price, price2 = price2, price_list_id=pxlist, user_id=user_id) session.add(newSku) session.commit() flash('new sku item created!') return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id)) pxlist = session.query(PriceList).filter_by(id=price_list_id).one() #protection from non creator if login_session['username'] != pxlist.user.name: flash("Debes ser el creador de la lista para crear un nuevo Sku.") return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id)) else: return render_template('pxlst/createSku.html', price_list_id=price_list_id)
def import_targets(): from app.models.target import Target with open('nutritionTablesReformatted.csv', 'rU') as csvfile: reader = csv.reader(csvfile, delimiter=',') #to skip the first row in the csv file containing headings reader.next() for row in reader: #create a new line in the database using sqlalchemy #instantiate in instance of the model, add it and commit target = Target() target.group = row[0] target.lower_age = float(row[1]) target.upper_age = float(row[2]) target.nutrient_no = row[3] if row[4] == "": target.value = None else: target.value = row[4] if row[5] == "": target.upper_limit = None else: target.upper_limit = row[5] session.add(target) session.commit()
def createUser(login_session): newUser = User(name=login_session['username'], email=login_session[ 'email'], picture=login_session['picture']) session.add(newUser) session.commit() user = session.query(User).filter_by(email=login_session['email']).one() return user.id
def updatePricelist(price_list_id): if 'username' not in login_session: return redirect('/oauth/login') else: pass item = session.query(PriceList).filter_by(id=price_list_id).one() if request.method == 'POST': if request.form.get('name'): item.name = request.form['name'] if request.form.get('communicated'): item.communicated = datetime.datetime.strptime(request.form['communicated'], '%Y-%m-%d') if request.form['vigente'] == 'True': item.vigente = True else: item.vigente = False session.add(item) session.commit() flash("lista de precios editada!") return redirect(url_for('pxlst.readPricelists')) #protection from non creator if login_session['username'] != item.user.name: flash("Debes ser el creador de la lista para editarla.") return redirect(url_for('pxlst.readPricelists')) else: return render_template('pxlst/updatePricelist.html', price_list_id=price_list_id, item=item)
def add_saved_meal_post(): #don't use the reequest.args.get('user') to avoid malicious user. #user_id incorporates the user_id via flask. user = current_user meal_name = request.args.get('meal_name') #query the data base Meal. meal = session.query(Meal).filter_by(name=meal_name, user_id=user.id).first() food_log = get_food_log(user) for food in meal.foods: #food is the name of the food in the MealFoodAssociation #create a new FoodLogFoodAssociation() for each MealFoodAssociation flfa = FoodLogFoodAssociation() #copy over the attributes of the MealFoodAssociation to FoodLogFoodAssociation flfa.food_NDB_No = food.food_NDB_No flfa.unit_Seq = food.unit_Seq flfa.quantity = food.quantity #append FoodLogFoodAssociation to food_log.foods food_log.foods.append(flfa) #send back this info to the client side via html which will then #be sent to the javascript which will insert the info on the page. session.commit() nutrient_definitions = session.query(NutrientDefinition).all() #fix me-should pass targets in. foods = build_food_list(meal.foods, nutrient_definitions) return render_template('partial_food_log.html', foods=foods)
def updateSku(price_list_id, sku_id): if 'username' not in login_session: return redirect('/oauth/login') else: pass sku = session.query(Sku).filter_by(id=sku_id).one() if request.method == 'POST': if request.form.get('name'): sku.name = request.form['name'] if request.form.get('varietal'): sku.varietal = request.form['varietal'] if request.form.get('price'): sku.price = int(request.form['price']) if request.form.get('price2'): sku.price2 = int(request.form['price2']) session.add(sku) session.commit() print 'sku commited' flash("sku editado!") return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id)) #protection from non creator if login_session['username'] != sku.user.name: flash("Debes ser el creador de la lista para editar este Sku.") return redirect(url_for('pxlst.readSkus', price_list_id=price_list_id)) else: return render_template('pxlst/updateSku.html', price_list_id=price_list_id, sku_id=sku_id, sku=sku)
def fill_gender(): try: session.add(Gender(name="Male")) session.add(Gender(name="Female")) session.commit() except: session.rollback()
def register(): form = RegistrationForm(request.form) print form.validate() print form.errors if request.method == 'POST' and form.validate(): user = User(form.username.data, form.email.data, form.password.data) session.add(user) try: session.commit() except IntegrityError as error: flash("Registration is unsucessful. A user with the same username or email address is already in use.") print error session.rollback() return render_template( 'register.html', title="Register", form=form ) flash("Registration is successful.") return redirect(url_for('login')) return render_template( 'register.html', title="Register", form=form )
def food_log_post(): user = current_user quantity = request.form.get('quantity') unit = request.form.get('unit') unit = json.loads(unit) food_log = get_food_log(user) association = FoodLogFoodAssociation( food_NDB_No=unit["NDB_No"], unit_Seq=unit["Seq"], quantity=float(quantity) ) food_log.foods.append(association) #build the query favorite_query = session.query(FavoriteAssociation) favorite_query = favorite_query.filter_by(NDB_No=unit["NDB_No"], user_id=user.id) #executing the query favorite = favorite_query.first() if favorite == None: favorite = FavoriteAssociation( NDB_No=unit["NDB_No"], user_id=user.id, popularity=1 ) session.add(favorite) else: favorite.popularity += 1 session.commit() return redirect(url_for('food_log_get'))
def get_food_log(user): food_log = session.query(FoodLog).filter_by(user=user).first() if food_log is None: food_log = FoodLog() food_log.user = user session.add(food_log) session.commit() return food_log
def saved_meal_post(): #don't use the reequest.args.get('user') to avoid malicious user. user = current_user #request.args.get('meal_name') gets the value associated #with the query string 'meal_name' #ex: /add_saved_meal_post?meal_name=breakfast selected_foods = request.args.get('selected_foods') meal_name = request.args.get('meal_name') #think about keys and values. look at the flask documentation for requesting #keys and values. #do not use 'if not selected_foods' because the id of 0 evaluates to False. if selected_foods == None or selected_foods == "": return "" #need to first strip leading and trailing commas to create a clean and valid list #of strings separated by commas. selected_foods = selected_foods.strip(",").split(',') #create an instance of the Meal model #creating a Meal object by calling the Meal constructor. #can set any column values as identified in the models, in this case models/meal.py #creating a name for the saved_meal saved_meal = Meal(name=meal_name) #loop through the food_ids to save the selected foods as a meal. #selected_foods is a list. for food_id in selected_foods: #making an instance of the Class MealFoodAssociation meal_food_association = MealFoodAssociation() #query the FoodLogFoodAssociation table to get the row (the matching association) that has the specific #food_id. food_log_food_association = session.query(FoodLogFoodAssociation).get(int(food_id)) #access the attribute of the variable which is an instance of the class #copy the attributes from the food_log_food_association to the #attribute mealfoodassociation #integer primary keys are automatically filled in. meal_food_association.food_NDB_No = food_log_food_association.food_NDB_No meal_food_association.unit_Seq = food_log_food_association.unit_Seq meal_food_association.quantity = food_log_food_association.quantity #add the saved food to the Meal saved_meal.foods.append(meal_food_association) #append the saved _meal to the list user.meals #save it once. Take it out of the for loop. user.meals.append(saved_meal) #save the meal session.add(saved_meal) session.commit() #returning an empty string is saying that the code works. return ""
def get_food_log(user, date=None): if date is None: date = datetime.date.today() food_log = session.query(FoodLog).filter_by(user=user, date=date).first() if food_log is None: food_log = FoodLog() food_log.user = user session.add(food_log) session.commit() return food_log
def categoryCheck(form): ''' Checks if parsed category name exists, if not it creates one ''' category = session.query(Category).filter_by(name=form.category.data).first() if category == None: newCategory = Category(name=form.category.data, user_id=login_session['user_id']) session.add(newCategory) session.commit() category = session.query(Category).filter_by(name=form.category.data).first() return category
def on_delete(self, req, resp): body = req.stream.read() body = json.loads(body) stid = req.get_param("student_id") tid = req.get_param("teacher_id") date = req.get_param("date") date = datetime.datetime.strptime(date, "%Y-%m-%d").date() schedule = sess.query(ms.Schedule).get(stid, tid, date) if schedule is None: resp.status = falcon.HTTP_400 resp.body = "Student Not Found" sess.delete(schedule) sess.commit() resp.body = "Schedule Successfully Removed"
def test_db(): # INSERT if not session.query(exists().where(User.email == '*****@*****.**')).scalar(): u1 = User() u1.name = "Test user" u1.email = "*****@*****.**" a1 = Address() a1.street = "Str 123" a1.city = "City WTF" u1.address = a1 session.add(a1) session.add(u1) session.commit() # check if record exists in db: # print session.query(Address).filter_by(city='City WTF').count() # print bool( session.query(Address).filter_by(city='City WTF').count() ) # SELECT if session.query(exists().where(Address.city == 'City WTF')).scalar(): a2 = session.query(Address).filter_by(city='City WTF').first() print a2.city if bool(session.query(Address).filter_by(city='City WTF').count()): a2 = session.query(Address).filter_by(city='City WTF').first() print a2.city # UPDATE if session.query(exists().where(User.email == '*****@*****.**')).scalar(): session.query(User).filter_by(email='*****@*****.**').update({"nick": "a"}) session.commit() if session.query(exists().where(User.email == '*****@*****.**')).scalar(): u = session.query(User).filter_by(email='*****@*****.**').first() u.nick = "b" session.commit() # DELETE if session.query(exists().where(User.email == '*****@*****.**')).scalar(): session.query(User).filter_by(email='*****@*****.**').delete() session.commit() if session.query(exists().where(Address.city == 'City WTF')).scalar(): session.query(Address).filter_by(city='City WTF').delete() session.commit()
def deleteCategory(category_name): if 'username' not in login_session: return redirect(url_for('auth.showLogin')) categoryToDelete = session.query(Category).filter_by(name=category_name).one() print categoryToDelete.user_id if categoryToDelete.user_id != login_session['user_id']: return "<script>function myFunction() {alert('You are not authorized to delete this category. Please create your own category in order to delete.');}</script><body onload='myFunction()''>" if request.method == 'POST': session.delete(categoryToDelete) flash('%s Successfully Deleted' % categoryToDelete.name) session.commit() return redirect(url_for('catalog.showCatalog')) else: return render_template('catalog/deletecategory.html', item=categoryToDelete)
def get(self, user_name): user = session.query(User).filter(User.name == user_name).first() if user is None: logger.error('GET User "{}" not found in DB'.format(user_name)) return {'error': 'Specified user does not exist'}, 404 if user != g.user: logger.error('GET Auth user {} does not match specified user {}'.format(user, g.user)) return {'error': 'Authenticated user does not match specified user'}, 403 assert isinstance(user, User) logger.info('GET User {}; username {}'.format(user, user_name)) # Update when User last seen user.last_seen = datetime.utcnow() session.add(user) session.commit() return UserAPI.user_info(user)
def deleteItem(item_name): if 'username' not in login_session: return redirect(url_for('auth.showLogin')) itemToDelete = session.query(Item).filter_by(name=item_name).one() if itemToDelete.user_id != login_session['user_id']: return "<script>function myFunction() {alert('You are not authorized to delete this item. Please create your own item in order to delete.');}</script><body onload='myFunction()''>" if request.method == 'POST': session.delete(itemToDelete) session.commit() flash('Item Successfully Deleted') return redirect(url_for('catalog.showCatalog')) else: return render_template('items/deleteitem.html', item=itemToDelete)
def newCategory(): if 'username' not in login_session: return redirect(url_for('auth.showLogin')) if request.method == 'POST': if request.form['name']: newCategory = Category(name=request.form['name'], user_id=login_session['user_id']) session.add(newCategory) flash('New Category %s Successfully Created' % newCategory.name) session.commit() return redirect(url_for('catalog.showCatalog')) else: flash('Name is mandatory') return render_template('catalog/newcategory.html') else: return render_template('catalog/newcategory.html')
def saved_meal_post(): user = current_user selected_foods = request.args.get('selected_foods') #think about keys and values. look at the flask documentation for requesting #keys and values. snacks = request.args.get('snacks') if selected_foods == None: return "" #need to first strip leading and trailing commas to create a clean and valid list #of strings separated by commas. selected_foods = selected_foods.strip(",").split(',') #create an instance of the Meal model saved_meal = Meal() #loop through the food_ids to save the selected foods as a meal. #selected_foods is a list. for food_id in selected_foods: #making an instance of the Class MealFoodAssociation meal_food_association = MealFoodAssociation() #query the FoodLogFoodAssociation table to get the row (the matching association) that has the specific #food_id. food_log_food_association = session.query(FoodLogFoodAssociation).get(int(food_id)) #access the attribute of the variable which is an instance of the class #copy the attributes from the food_log_food_association to the #attribute mealfoodassociation #integer primary keys are automatically filled in. meal_food_association.food_NDB_No = food_log_food_association.food_NDB_No meal_food_association.unit_Seq = food_log_food_association.unit_Seq meal_food_association.quantity = food_log_food_association.quantity #add the saved food to the Meal saved_meal.foods.append(meal_food_association) #append the saved _meal to the list user.meals #save it once. Take it out of the for loop. user.meals.append(saved_meal) #save the meal session.add(saved_meal) session.commit() print "save_meal" print request.args.get('selected_foods') return ""
def add_user(): name = request.form['name'] mail = request.form['email'] nick = request.form['nick'] address_id = request.form['address'] address = session.query(Address).filter_by(id=address_id).scalar() u = User() u.name = name u.email = mail u.nick = nick u.address = address session.commit() return redirect(url_for('users'))
def on_post(self, req, resp): today = datetime.date.today() absent = req.get_param_as_list("absent") # req.log_error(" ".join(absent)) present = req.get_param_as_list("present") # req.log_error(" ".join(present)) for stid in absent: if sess.query(ms.Absence).get((stid, today)) is None: sess.add(ms.Absence(stid, today)) for stid in present: temp = sess.query(ms.Absence).get((stid, today)) if temp is not None: sess.delete(temp) sess.commit() resp.status = falcon.HTTP_200 resp.body = "Attendance Successfully Taken"
def on_post(self, req, resp): teacher_id = req.get_param("id") if sess.query(ms.Teacher).get(teacher_id) is None: resp.status = falcon.HTTP_409 resp.body = "That id is already taken" return first_name, last_name, room_id =\ req.get_param("first_name"), req.get_param("last_name"), req.get_param("room_id") if first_name is None or last_name is None or room_id is None: resp.status = falcon.HTTP_500 resp.body = "A first_name, last_name, and room_id are required." return teach = ms.Teacher(teacher_id, first_name, last_name, room_id) sess.add(teach) sess.commit() resp.status = falcon.HTTP_200 resp.body = json.dumps(teach.to_dict())
def selected_food_groups(): user = current_user # Get and parse a comma-seperated query string food_groups = request.args.get('food_groups') if food_groups == None: return "" food_groups = food_groups.split(',') user.selected_food_groups = [] for code in food_groups: association = UserFoodGroupAssociation( food_group_code=code ) user.selected_food_groups.append(association) session.commit() return ""
def food_log_post(): user = current_user quantity = request.form.get('quantity') unit = request.form.get('unit') unit = json.loads(unit) food_log = get_food_log(user) association = FoodLogFoodAssociation( food_NDB_No=unit["NDB_No"], unit_Seq=unit["Seq"], quantity=float(quantity) ) food_log.foods.append(association) session.commit() return redirect(url_for('food_log_get'))
def newItem(): if 'username' not in login_session: return redirect(url_for('auth.showLogin')) categories = session.query(Category).order_by(asc(Category.name)) if request.method == 'POST': if request.form['name'] and request.form['description'] and request.form['category_id']: newItem = Item(name=request.form['name'], description=request.form['description'], category_id=request.form['category_id'], user_id=login_session['user_id']) session.add(newItem) session.commit() flash('New Item %s Successfully Created' % (newItem.name)) return redirect(url_for('catalog.showCatalog')) else: flash('All fields are mandatory') return render_template('items/newitem.html', categories=categories) else: return render_template('items/newitem.html', categories=categories)
def selected_food_groups(): user = current_user # Get and parse a comma-seperated query string food_groups = request.args.get('food_groups') if food_groups == None: return "" food_groups = food_groups.split(',') # user.selected_food_groups is linked to the nutrition database. session.query(UserFoodGroupAssociation).delete() for code in food_groups: association = UserFoodGroupAssociation( food_group_code=code ) user.selected_food_groups.append(association) session.commit() return ""
def generate_mileage(): """Generate fixed mileage entries to be nullified in SQL if false""" description = 'IDC-Google 53 miles x 2 @ $.54/mile (2017)' contract = session.query(models.Contract).get(1664) employee = session.query(models.Employee).get(1479) mileage_cat = session.query(models.ExpenseCategory).get(2) startdate = dt.datetime(year=contract.startdate.year, month=contract.startdate.month, day=contract.startdate.day) delta = dt.datetime.now() - startdate for i in range(delta.days + 1): day = startdate + dt.timedelta(days=i) if day.weekday() in range(0, 5): exp_count = session.query(models.Expense).filter(models.Expense.category == mileage_cat, models.Expense.description == description, models.Expense.date == day).count() if exp_count == 0: exp = models.Expense(category=mileage_cat, description=description, amount=53 * 2 * .54, date=day, employee=employee) session.add(exp) session.commit()
def save(self, obj): """ Save an object to the database """ session.add(obj) session.commit()
def remove(self, obj): """ Remove an object from the database """ session.delete(obj) session.commit()
def tearDown(self): session.commit() Base.metadata.drop_all(bind=engine)
def archive(apostile_id): apostile = session.query(Apostile).filter(Apostile.id == apostile_id).first() apostile.is_archived = not apostile.is_archived session.commit() return redirect(f'/apostile/{apostile_id}')
def __init__(self, name, password): self.name = name self.password = pwd.encrypt(password) session.add(self) session.commit()
def delete_database(): session.begin() session.query(Location).delete() session.query(User).delete() session.commit() return redirect(url_for('home'))
def user_add(username, password, is_admin): new_user = User(username, password, is_admin) session.add(new_user) session.commit() return new_user
def clean_database(): BaseModel.metadata.drop_all(bind=ENGINE) BaseModel.metadata.create_all(bind=ENGINE) session.commit()
def order_add(number, adress): new_order = Order(number, adress) session.add(new_order) session.commit() return new_order
def on_message(client, userdata, msg): print("MQTT, Topic: ", msg.topic + ', Message: ' + str(msg.payload)) if msg.topic == 'control/app/00001214': # time.sleep(1) 이게 느리면 웹에 반영이 느림 c = session.query(AppModel).order_by('id').all() # c = AppModel.query.all() # for i in c: # print('c', i.app_switch) # query = session.query(AppModel).filter_by(id=18).first() # query = session.query(AppModel).order_by(AppModel.id.desc()).first() # print('qq,c', query.app_switch) # session.commit() res = post(api_url + 'app/save', data=json.dumps(c, cls=AlchemyEncoder)) print(res) # res = post('http://127.0.0.1:5000/' + 'app/save', data=json.dumps(c, cls=AlchemyEncoder)) # print('res', res) # for i in json.loads(json.dumps(c, cls=AlchemyEncoder)): # print('data', i['app_name']) elif msg.topic == 'app/upload/00001214': app_title = getAppModi(app_origin=msg.payload.decode()) print('upload completed') # time.sleep(3) # # connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) # channel = connection.channel() # channel.queue_declare(queue='app_q') # channel.basic_publish(exchange='', routing_key='app_q', body='app_upload,' + app_title) # print("RABBITMQ,", 'app_upload,' + app_title) # connection.close() elif msg.topic == 'control/motor/00001214': # rabbit connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='motor_q') channel.basic_publish(exchange='', routing_key='motor_q', body=msg.payload.decode()) print("RABBITMQ, Send " + str(msg.payload)) connection.close() elif msg.topic == 'control/led/00001214': data = msg.payload.decode().split(',') app_id = data[0] query = session.query(AppModel).filter_by(app_id=app_id).first() query.app_output_detail = data[1] session.commit() res = post(api_url + 'app/save/one', data=json.dumps(query, cls=AlchemyEncoder)) # rabbit connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='led_q') channel.basic_publish(exchange='', routing_key='led_q', body=msg.payload.decode()) print("RABBITMQ, Send " + str(msg.payload)) connection.close() elif msg.topic == 'app/switch_toggle/00001214': app_id = msg.payload.decode() query = session.query(AppModel).filter_by(app_id=app_id).first() # print('query1', (query.app_switch)) if query: if query.app_switch: query.app_switch = False else: query.app_switch = True session.commit() # c = session.query(AppModel).order_by('id').all() # res = post(api_url + 'app/save', data=json.dumps(c, cls=AlchemyEncoder)) # print(res) res = post(api_url + 'app/save/one', data=json.dumps(query, cls=AlchemyEncoder)) print(res) # rabbit connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue='app_q') channel.basic_publish(exchange='', routing_key='app_q', body='app_switch_toggle,' + msg.payload.decode() + ',' + str(query.app_switch)) print("RABBITMQ, Send " + str(msg.payload)) connection.close() elif msg.topic == 'app/output/00001214': data = msg.payload.decode().split(',') app_id = data[0] query = session.query(AppModel).filter_by(app_id=app_id).first() query.app_output_detail = data[1] session.commit() res = post(api_url + 'app/save/one', data=json.dumps(query, cls=AlchemyEncoder)) # rabbit connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue=data[2]) channel.basic_publish(exchange='', routing_key=data[2], body=msg.payload.decode()) print("RABBITMQ, Send " + str(msg.payload)) connection.close() elif msg.topic == 'app/setting/00001214': data = msg.payload.decode().split(',') app_id = data[0] session.query(AppSetting).filter_by(app_id=app_id).delete() session.add(AppSetting(app_id, data[1], data[2], data[3], data[4])) session.commit()
def deletar_pedido(id): del_pedido = session.get(tbl_pedido, id) session.delete(del_pedido) session.commit() session.close() return redirect(url_for('admin_pedido'))
def getAppModi(app_origin): # 가져온 정보 app = app_origin.split(',') app_title = app[0] app_sub = app[1] # app_sub = app[2] app_content = app[2] # print('app_title', app_title) print('app_content', app_content) # 앱 제작 중 app_switch = False # 만약 특정 변수가 발견되면 그 변수에 맞는거 가져옴 pre = '#-*- coding: utf-8 -*-\n\n' app_input = '' input_detail = '' output = '' output_meta = '' output_detail = None # input if app_content.count('temperatureFromSky()'): pre += open('pre/temp_pre.py', 'r').read() + '\n\n' app_input += '기상청 온도 및 습도' input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str( getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str( getHumi()) + "%'}]" elif app_content.count('humidityFromSky()'): pre += open('pre/humi_pre.py', 'r').read() + '\n\n' app_input += '기상청 온도 및 습도' input_detail = "[{'icon': 'sun icon', 'value': 온도 : '" + str( getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str( getHumi()) + "%'}]" elif app_content.count('SKYFromSky()'): pre += open('pre/sky_pre.py', 'r').read() + '\n\n' app_input += '하늘 상태 및 강수 형태' input_detail = "[{'icon': 'sun icon', 'value': '하늘 : " + getSKY( ) + "'}, {'icon': 'umbrella icon', 'value': '강수 : " + getPTY() + "'}]" elif app_content.count('PTYFromSky()'): pre += open('pre/pty_pre.py', 'r').read() + '\n\n' app_input += '하늘 상태 및 강수 형태' input_detail = "[{'icon': 'sun icon', 'value': '하늘 : " + getSKY( ) + "'}, {'icon': 'umbrella icon', 'value': '강수 : " + getPTY() + "'}]" elif app_content.count('PM10FromSky()'): pre += open('pre/PM10_pre.py', 'r').read() + '\n\n' app_input += '미세먼지(10㎛)' input_detail = "[{'icon': 'certificate icon', 'value': ' : " + mise( 'PM10') + "㎍/㎥'}]" elif app_content.count('PM25FromSky()'): pre += open('pre/PM25_pre.py', 'r').read() + '\n\n' app_input += '초미세먼지(2.5㎛)' input_detail = "[{'icon': 'certificate icon', 'value': '" + mise( 'PM25') + "㎍/㎥'}]" elif app_content.count('O3FromSky()'): pre += open('pre/O3_pre.py', 'r').read() + '\n\n' app_input += '오존농도(ppm)' input_detail = "[{'icon': 'certificate icon', 'value': '" + mise( 'O3') + "ppm'}]" # sensor elif app_content.count('soilHumidity()'): pre += open('pre/soil_pre.py', 'r').read() + '\n\n' app_input += '토양 습도 센서' input_detail = "[{'icon': 'theme icon', 'value': '습도 : " + str( getTemp()) + "%'}]" elif app_content.count('temperatureFromSensor()'): pre += open('pre/temp_sensor_pre.py', 'r').read() + '\n\n' app_input += '온습도 센서' input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str( getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str( getHumi()) + "%'}]" elif app_content.count('humidityFromSensor()'): pre += open('pre/humi_sensor_pre.py', 'r').read() + '\n\n' app_input += '온습도 센서' input_detail = "[{'icon': 'sun icon', 'value': '온도 : " + str( getTemp()) + "°C'}, {'icon': 'theme icon', 'value': '습도 : " + str( getHumi()) + "%'}]" # elif app_content.count('recognizeHuman()'): pre += open('pre/recog_human_pre.py', 'r').read() + '\n\n' app_input += '사람 인식' input_detail = "[{'icon': 'add user icon', 'value': '사람" + '' + " 인식'}]" elif app_content.count('clapCount()'): pre += open('pre/clap_cnt_pre.py', 'r').read() + '\n\n' app_input += '박수 횟수' input_detail = "[{'icon': 'sign language icon', 'value': '횟수 : " + str( getTemp( )) + "번'}, {'icon': 'bullseye icon', 'value': '세기 : " + str( getHumi()) + "%'}]" elif app_content.count('checkButtonCount()'): pre += open('pre/btn_cnt_pre.py', 'r').read() + '\n\n' app_input += '버튼 눌림 횟수' input_detail = "[{'icon': 'hand pointer icon', 'value': '버튼 " + str( getTemp()) + "번 눌림'}]" # output if app_content.count('motorRun'): pre += open('pre/motor_pre.py', 'r').read() + '\n\n' output += '서보 모터' output_detail = '0' elif app_content.count('remoteControl'): pre += open('pre/remote_pre.py', 'r').read() + '\n\n' output += '리모컨' output_detail = '0' elif app_content.count('ledRun'): pre += open('pre/led_pre.py', 'r').read() + '\n\n' output += 'LED' output_detail = '000000' elif app_content.count('buzzerRun'): pre += open('pre/buzzer_pre.py', 'r').read() + '\n\n' output += '부저' output_detail = '0' # add db # db_app = session.query(AppModel).filter_by(app_name=app_title).first() # if db_app: # session.query(AppModel).filter_by(app_name=app_title).delete() app_id = app[3] session.add( AppModel(app_id, app_title, app_sub, app_switch, app_input, input_detail, output, output_detail)) session.commit() # query = session.query(AppModel).order_by(AppModel.id.desc()).first() # print('query.id', query.id) session.add(AppSetting(app_id, 0, 0, 0, 0)) session.commit() # final pre pre += 'rabbit_app_id = ' + str(app_id) + '\n\n' pre += open('pre/rabbit_pre.py', 'r').read() + '\n\n' # 앱 변형 modi = pre + '\n' + app_content # 완료된 앱 저장 f_modi = open('./app_user/' + str(app_id) + '.py', 'w') f_modi.write(modi) f_modi.close() query = session.query(AppModel).all() # print('query', (query)) c = query res = post(api_url + 'app/save', data=json.dumps(c, cls=AlchemyEncoder)) session.close() return app_title
def deletar_produto(id): id_produto = session.get(tbl_produto, id) session.delete(id_produto) session.commit() session.close() return redirect(url_for('admin_produto'))
def mockup(): users = [ User(firstname='testn', lastname='testsg', email='*****@*****.**', password='******', role='client'), User(firstname='testmng', lastname='testmng', email='*****@*****.**', password='******', role='manager') ] session.add_all(users) stations = [ Station(name="лубянка-1", province="Рязанская область"), Station(name="искра-1", province="Рязанская область"), Station(name="боровое-1", province="Рязанская область"), Station(name="Ковылкиноб", province="Мордовия") ] session.add_all(stations) session.commit() routes = [BaseRoute(name="Рязань - Мордовия")] session.add_all(routes) session.commit() stops = [ Stop(station_id=stations[0].id, route_id=routes[0].id, departure=datetime(2020, 10, 1, 0, 0)), Stop(station_id=stations[1].id, route_id=routes[0].id, arriving=datetime(2020, 10, 1, 2, 0), departure=datetime(2020, 10, 1, 2, 5)), Stop(station_id=stations[2].id, route_id=routes[0].id, arriving=datetime(2020, 10, 1, 4, 0), departure=datetime(2020, 10, 1, 4, 5)), Stop(station_id=stations[3].id, route_id=routes[0].id, arriving=datetime(2020, 10, 1, 7, 0)) ] session.add_all(stops) session.commit() trains = [Train()] session.add_all(trains) session.commit() wagons = [ Wagon(train_id=trains[0].id, type='Купе', places_count=5), Wagon(train_id=trains[0].id, type='Плацкартовый', places_count=4), Wagon(train_id=trains[0].id, type='Купе', places_count=2) ] session.add_all(wagons) session.commit() schedules = [ Schedule(train_id=trains[0].id, base_route_id=routes[0].id, departure_time=stops[0].departure) ] session.add_all(schedules) session.commit() tickets = [ Ticket(departure_stop_id=stops[2].id, arrival_stop_id=stops[3].id, cost=34, wagon_id=wagons[0].id, place=2, schedule_id=schedules[0].id, is_booked=False, user_id=users[0].id), Ticket(departure_stop_id=stops[1].id, arrival_stop_id=stops[3].id, cost=34, wagon_id=wagons[1].id, place=3, schedule_id=schedules[0].id, is_booked=False, user_id=users[0].id), Ticket(departure_stop_id=stops[0].id, arrival_stop_id=stops[3].id, cost=34, wagon_id=wagons[1].id, place=1, schedule_id=schedules[0].id, is_booked=True, user_id=users[0].id, book_end_date=datetime(2020, 9, 25, 0, 0)), Ticket(departure_stop_id=stops[0].id, arrival_stop_id=stops[3].id, cost=34, wagon_id=wagons[1].id, place=2, schedule_id=schedules[0].id, is_booked=True, user_id=users[0].id, book_end_date=datetime(2020, 9, 25, 0, 0)), Ticket(departure_stop_id=stops[0].id, arrival_stop_id=stops[3].id, cost=34, wagon_id=wagons[1].id, place=3, schedule_id=schedules[0].id, is_booked=True, user_id=users[0].id, book_end_date=datetime(2020, 9, 25, 0, 0)) ] session.add_all(tickets) session.commit()
def deletar_pessoajuridica(id): id_log = session.get(tbl_cliente, id) session.delete(id_log) session.commit() session.close() return redirect(url_for('adminpj'))
def setUp(self): session.commit() Base.metadata.create_all(engine)
def adicionar_pessoajuridica(): cidades = session.query(tbl_cidade).order_by(tbl_cidade.cidade).all() if request.method == 'POST': # tbl_cliente usuario = request.form['usuario'] senha = request.form['senha'] senha = generate_password_hash(senha, method='sha256', salt_length=2) endereco = request.form['endereco'] num_endereco = request.form['num_endereco'] complemento = request.form['complemento'] bairro = request.form['bairro'] cep = request.form['cep'] cod_cidade = request.form['cod_cidade'] contato = request.form['contato'] email = request.form['email'] observacao = request.form['observacao'] cliente = tbl_cliente(usuario=usuario, senha=senha, endereco=endereco, num_endereco=num_endereco, complemento=complemento, bairro=bairro, cep=cep, cod_cidade=cod_cidade, contato=contato, email=email, observacao=observacao) session.add(cliente) session.commit() # tbl_pessoa_juridica nome_fantasia = request.form['nome_fantasia'] razao_social = request.form['razao_social'] cnpj = request.form['cnpj'] inscricao_estadual = request.form['inscricao_estadual'] data_fundacao = request.form['data_fundacao'] pessoa_juridica = tbl_pessoa_juridica( id_pessoa_juridica=cliente.id_cliente, nome_fantasia=nome_fantasia, razao_social=razao_social, cnpj=cnpj, inscricao_estadual=inscricao_estadual, data_fundacao=data_fundacao) session.add(pessoa_juridica) session.commit() # tbl_telefone ddd = request.form['ddd'] telefone = request.form['telefone'] tb_telefone = tbl_telefone(ddd=ddd, telefone=telefone, cod_cliente=cliente.id_cliente) session.add(tb_telefone) session.commit() session.close() return redirect(url_for('adminpj')) session.close() return render_template('adicionar_pessoajuridica.html', cidades=cidades)
def update_holder(obj_id): obj = session.query(User).filter(User.id == obj_id).first() obj.is_active = not obj.is_active session.commit() return redirect(request.args['url'])
def load_node_info_to_database(ansible_facts_dir): nodes=session.query(models.Node).all() res={"succeed" : 0, "error":0} for node in nodes: node.updated_at=datetime.now() node.node_type="oenstack" with open(ansible_facts_dir+ '/'+str(node.management_ip)) as data_node: node_data = json.load(data_node) ansible_facts=node_data.get('ansible_facts') if ansible_facts is not None: #print(node_data) node_name = ansible_facts.get('ansible_hostname') memory_mb = ansible_facts.get('ansible_memtotal_mb') memory_mb_free=ansible_facts.get('ansible_memfree_mb') numa_topology=None metrics= None processor_core=ansible_facts.get('ansible_processor_cores') processor_count=ansible_facts.get('ansible_processor_count') processor_threads_per_core=ansible_facts.get('ansible_processor_threads_per_core') processor_vcpu=ansible_facts.get('ansible_processor_vcpus') os_family=ansible_facts.get('ansible_os_family') pkg_mgr=ansible_facts.get('ansible_pkg_mgr') os_version=ansible_facts.get('ansible_distribution_version') default_ipv4=ansible_facts.get('ansible_default_ipv4').get('address') default_broadcast=ansible_facts.get('ansible_default_ipv4').get('broadcast') default_gateway=ansible_facts.get('ansible_default_ipv4').get('gateway') default_interface_id=ansible_facts.get('ansible_default_ipv4').get('interface') node_info=models.Node_info(node_name=node_name,memory_mb=memory_mb,memory_mb_free=memory_mb_free,numa_topology=numa_topology,metrics=metrics,processor_core=processor_core,processor_count=processor_count,processor_threads_per_core=processor_threads_per_core, processor_vcpu=processor_vcpu,os_family=os_family, pkg_mgr=pkg_mgr,os_version=os_version,default_ipv4=default_ipv4,default_broadcast=default_broadcast,default_gateway=default_gateway,default_interface_id=default_interface_id) interface_resources=[] for interface in ansible_facts['ansible_interfaces']: if "docker" not in interface and "veth" not in interface and "virb" not in interface : interface_info=ansible_facts.get('ansible_'+interface) if interface_info is not None: device_name=interface_info.get('device') speed=interface_info.get('speed') port_info=None active=str(interface_info.get('active')) features=str(interface_info.get('features')) macaddress=interface_info.get('macaddress') module=interface_info.get('module') mtu=interface_info.get('mtu') pciid=interface_info.get('pciid') phc_index=interface_info.get('phc_index') type_interface=interface_info.get('type_interface') if device_name==ansible_facts.get('ansible_default_ipv4').get('interface'): is_default_ip='True' else: is_default_ip='False' interface_resource=models.Interface_resource(device_name=device_name,speed=speed,port_info=port_info,active=active,features=features,macaddress=macaddress,module=module,mtu=mtu,pciid=pciid,phc_index=phc_index,type_interface=type_interface,is_default_ip=is_default_ip) interface_resources.append(interface_resource) node_info.interface_resources=interface_resources #node_info.update(interface_resources=interface_resources) disk_resources=[] for device in ansible_facts['ansible_devices']: if "sd" in device: device_data=ansible_facts.get('ansible_devices').get(str(device)) device_name=device size = int(float(device_data.get('size')[0:-2].replace(" ", ""))) model = device_data.get('model') removable= device_data.get('removable') sectors = device_data.get('sectors') sectorsize=device_data.get('sectorsize') serial = device_data.get('serial') vendor = device_data.get('vendor') support_discard=device_data.get('support_discard') virtual=device_data.get('virtual') disk_resource= models.Disk_resource(device_name=device_name, size=size, model=model, removable=removable,sectors=sectors,sectorsize=sectorsize,serial=serial, vendor=vendor,support_discard=support_discard,virtual=virtual) disk_resources.append(disk_resource) node_info.disk_resources=disk_resources node.node_info=node_info node.status = "success access node info" res['succeed']+=1 else : node.status = json.dumps(node_data) res['error']+=1 session.add(node) session.commit() session.close() return res