def add_row(table): """ Добавить запись в таблицу """ form = EditForm() # Получить запись из таблицы data = execute(table_fields.format(table=table)) print(data) data_to_update = '' if form.validate_on_submit(): flash('Добавлено ;)') print(form) raw_data = request.form for row in raw_data: if row != 'csrf_token': # Строка для апдейта data_to_update += "{}='{}', ".format(row, raw_data[row]) # debug Вывести запрос в БД query = insert_query.format(table=table, setter=data_to_update[0:-2]) print(query) # Выполнить обновление записи execute(query) return redirect(url_for('view_table', table=table)) return render_template('admin/add.html', table=table, tables=table_names, data=data, form=form)
def index(): """ Главная страница с предложением заказа """ # Форма с параметрами собаки dog_form = DogForm() choices = get_choices() # Добавить выборы в поля dog_form.dog_age.choices = choices['age'] dog_form.dog_body_type.choices = choices['body_type'] dog_form.dog_breed.choices = choices['breed'] dog_form.meat.choices = choices['meat'] dog_form.sub_product.choices = choices['sub_product'] dog_form.vegitables.choices = choices['vegitables'] dog_form.poridge.choices = choices['poridge'] data = {} if request.method == 'POST': # if dog_form.validate_on_submit(): # flash('Форма подтверждена') # Расчитать всю фигню data = request.form.to_dict() del data['csrf_token'] del data['submit'] print(data) ORDER_DATA = data session['order'] = ORDER_DATA # Костыль: сколько раз кормить feed = execute('select age, feed from age where id={}'.format(data['dog_age'])) # Поместить в массив нужные данные ration, total_weigt = calc_food(data) print('Общий вес рациона {} грамм'.format(total_weigt)) print(ration) # Кисломолочка try: if data['dog_include_milk']: milks = MILKS except Exception: milks = None # Добавить форму обратной связи contact_form = ContactForm() # Показать шаблон с размеченной таблицей # return(render_template('order.html', result=ration, weight=total_weigt, milks=milks, contact_form=contact_form, feed=feed[0])) return render_template( 'index.html', form=dog_form, title="НямПес" )
def view_table(table): """ Просмотр выбранной таблицы """ query = simple_query.format(table=table) result = execute(query) print(result) return render_template('admin/view.html', result=result, table=table, tables=table_names)
def get_product(id, weight, percent): ''' Расчитать запись в таблице. вернуть название, вес, общую стоимость ''' product = execute('select i.name "Продукт", t.name "Тип", i.price "Цена" from ingredient i, ingredient_type t where i.type = t.id and i.id = {}'.format(id)) product = product[0] product['Вес'] = weight / 100 * percent product['Цена'] = round(product['Цена'] * (product['Вес'] / 1000),2) return product
def calc_food_mass(age, weight): ''' Функция расчета массы корма ''' # age = percent from db # weight = gramm # Выбрать процент для расчета из БД percent = execute("select percent from age where id={}".format(age)) percent = percent[0]['percent'] result = (percent * int(weight)) result = round(result,2) return result
def edit_table(table, id): """ Изменить запись в таблице """ form = EditForm() # Получить запись из таблицы data = execute(row_query.format(table=table, id=id)) # form_fields = execute(table_fields.format(table=table)) # В какие поля вставлять data_to_update = '' if form.validate_on_submit(): flash('Сохранено ;)') print(form) raw_data = request.form for row in raw_data: if row != 'csrf_token': # Строка для апдейта data_to_update += "{}='{}', ".format(row, raw_data[row]) # debug Вывести запрос в БД query = edit_query.format(table=table, setter=data_to_update[0:-2], id=id) # Выполнить обновление записи execute(query) return redirect(url_for('view_table', table=table)) return render_template('admin/edit_add.html', table=table, tables=table_names, data=data, form=form)
def order(): answer = { 'status': 200, 'oreder': '' } if not request.json: abort(400) params = request.json # print('JSON has come! Here it is: ') # print(params) customer = params['customer'] products = params['order_data'] # Проверить на существующий email session['customer_id'] = execute("select id from customer where email = '{}'".format(customer['email'])) if not session['customer_id']: data_to_update = '' # print(customer) data_to_update += "name = '{name}', email = '{email}', phone='{phone}' ".format( name=customer['name'], email=customer['email'], phone=customer['phone'] ) # debug Вывести запрос в БД query = insert_query.format( table='customer', setter=data_to_update, ) # Выполнить обновление записи print(query) session['customer_id'] = insert(query) # customer_id = execute("select id from customer last") # session['customer_id'] = customer_id[0] print('Сессия и заказ в ней') print(session['order']) print(session['customer_id']) # Занести в БД incusion date = get_formated_current_time() query = """ INSERT INTO nyam_pes.order (date,customer_id,age_id,weight,body_type_id,breed_id) VALUES ('{date}', '{customer_id}', '{age_id}', '{weight}', '{body_type_id}', '{breed_id}') """.format( date=date, customer_id = session['customer_id'][0]['id'], age_id = session['order']['dog_age'], weight = session['order']['dog_weight'], body_type_id = session['order']['dog_body_type'], breed_id = session['order']['dog_breed'], ) print(query) session['order_id'] = insert(query) # Занести все позиции заказа answer['order'] = session['order_id'] return jsonify(answer)
def delete_row(table, id): execute(delete_query.format(table=table, id=id)) flash('Запись удалена') return redirect(url_for('view_table', table=table))
from app import app from app.queries import execute, edit_query, insert_query, row_query, simple_query, execute, tables_query, table_fields, delete_query from app.forms import EditForm from app.form_constructor import construct # # from flask_wtf import FlaskForm from wtforms import StringField, SelectField, FloatField, IntegerField, DateTimeField, SubmitField from wtforms.fields.html5 import DateField from wtforms.validators import DataRequired, Length from wtforms_dynamic_fields import WTFormsDynamicFields ##### table_names = execute(tables_query) @app.route('/admin/') @app.route('/admin/index') def admin_index(): return render_template('admin/index.html', tables=table_names) @app.route('/admin/view/<string:table>') def view_table(table): """ Просмотр выбранной таблицы """ query = simple_query.format(table=table) result = execute(query)