Exemplo n.º 1
0
def create_data(num, model_name):
    """Создает num записей для model модели."""
    i = 0
    model = Session.query(metadata.tables[model_name])
    while i < num:
        object_data = {}
        for column in model.column_descriptions:
            if isinstance(column['type'], Integer) and column['name'] != 'id':
                if fk := column['expr'].foreign_keys:
                    t_model, t_pk = next(iter(fk)).target_fullname.split('.')
                    t_obj = Session.query(metadata.tables[t_model]).first()
                    object_data[column['name']] = getattr(t_obj, t_pk)
                else:
                    object_data[column['name']] = random.randint
            if isinstance(column['type'], String):
                if column['name'] == 'email':
                    object_data[column['name']] = fake.email()
                else:
                    object_data[column['name']] = fake.name()
            if isinstance(column['type'], Date):
                object_data[column['name']] = fake.date()
            if isinstance(column['type'], DateTime):
                object_data[column['name']] = fake.date_time()

        insert_query = metadata.tables[model_name].insert().values(
            **object_data)
        Session.execute(insert_query)
        Session.commit()
        i += 1
Exemplo n.º 2
0
async def add_order(request):
    """Метод добавления заказа пользователем."""
    user = request.app['user']
    request_body = await request.json()
    order_data = {'user_id': user.id, 'created_at': datetime.now().isoformat()}
    insert_query = metadata.tables['orders'].insert().values(**order_data)
    result = Session.execute(insert_query)
    Session.commit()
    [
        item.update({'order_id': result.inserted_primary_key[0]})
        for item in request_body
    ]
    Session.execute(metadata.tables['orders_goods'].insert(), request_body)
    Session.commit()
    return web.Response(status=HTTPStatus.CREATED)
Exemplo n.º 3
0
def find_books(search_text):
    try:
        result = []
        sess = Session()
        # books = sess.query(Book).filter(Book.name.contains(search_text)).order_by(Book.name).all()
        # result = [a.to_dict() for a in books]
        # %' or 1=1 or '%
        query = "SELECT * FROM book WHERE name like '%" + search_text + "%'"
        print(query)
        books = sess.execute(query)
        result = [{column: value
                   for column, value in rowproxy.items()}
                  for rowproxy in books]
    except Exception as e:
        result = []
    return result
Exemplo n.º 4
0
def clear_data(model_name):
    """Полная очистка БД."""
    insert_query = metadata.tables[model_name].delete()
    Session.execute(insert_query)
    Session.commit()