示例#1
0
def filtred_items(type_item):
    db_sess = db_session.create_session()
    category, type_search = None, None
    filter_types = [
        'bg-dark me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center text-white overflow-hidden',
        'bg-light me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden',
        'bg-light me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden',
        'bg-dark me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center text-white overflow-hidden',
    ]
    if type_item == 'phones':
        type_search = 2
        category = 'телефоны'
    elif type_item == 'watch':
        type_search = 4
        category = 'часы'
    elif type_item == 'tv':
        type_search = 3
        category = 'телевизоры'
    elif type_item == 'tablets':
        type_search = 1
        category = 'планшеты'
    id_items = [
        item[0] for item in db_sess.query(category_to_items.c.item).filter(
            category_to_items.c.category == type_search).all()
    ]

    items = [
        str(item).split('-')
        for item in db_sess.query(Items).filter(Items.id.in_(id_items)).all()
    ]
    return render_template("filtred_items.html",
                           count=len(items),
                           all_types=filter_types,
                           items=items,
                           category=category)
示例#2
0
 def delete(self, items_id):
     abort_if_news_not_found(items_id)
     session = db_session.create_session()
     news = session.query(Items).get(items_id)
     session.delete(news)
     session.commit()
     return jsonify({'success': 'OK'})
示例#3
0
def support():
    form = SupportForm()
    db_sess = db_session.create_session()
    form.theme.choices = [(theme.id, theme.theme)
                          for theme in db_sess.query(Themes).all()]
    if form.validate_on_submit():
        if db_sess.query(User).filter(User.email == form.email.data).first():
            question = Questions(question=form.question.data,
                                 user_id=db_sess.query(User.id).filter(
                                     User.email == form.email.data).first()[0],
                                 theme_id=form.theme.data)
            db_sess.add(question)
            db_sess.commit()
            flash("Ваш запрос успешно отправлен в тех.поддержку", "success")
        else:
            return render_template(
                'support.html',
                title='Поддержка',
                form=form,
                message=
                "Обращаться с вопросами в тех.поддержку могут только зарегистрированные пользователи."
                " Попробуйте ввести корректный email, если у вас уже усть аккаунт. Иначе же создайте новый"
            )
        return redirect('/index')
    return render_template('support.html', title='Поддержка', form=form)
示例#4
0
def index():
    db_sess = db_session.create_session()
    items = [str(item).split('-') for item in db_sess.query(Items).all()]

    return render_template("index.html",
                           count=len(items),
                           all_types=ALL_TYPES,
                           items=items)  # , items=items
示例#5
0
 def get(self, items_id):
     abort_if_news_not_found(items_id)
     session = db_session.create_session()
     items = session.query(Items).get(items_id)
     return jsonify({
         'items': items.to_dict(only=(
             'id', 'name', 'content', 'characteristics', 'price'))
     })
示例#6
0
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     item = Category(
         name=args['name']
     )
     session.add(item)
     session.commit()
     return jsonify({'success': 'OK'})
示例#7
0
def edit_item(id_item, content=None, name=None, about=None):
    db_sess = db_session.create_session()
    item = db_sess.query(Items).filter(Items.id == id_item).first()
    if content:
        item.content = content
    if name:
        item.name = name
    if about:
        item.about = about
    db_sess.commit()
示例#8
0
 def get(self):
     session = db_session.create_session()
     news = session.query(Category).all()
     return jsonify(
         {
             'categories':
                 [item.to_dict(only=('id', 'name'))
                  for item in news]
         }
     )
示例#9
0
def more(id):
    db_sess = db_session.create_session()
    item = db_sess.query(Items).filter(Items.id == id).first()
    characteristics = item.characteristics.split('%')
    img = item.content
    return render_template('info_more.html',
                           characteristics=characteristics,
                           count=len(characteristics),
                           image=img,
                           id=id)
示例#10
0
def create_item(name, content, about, characteristics, price, category):
    db_sess = db_session.create_session()
    item = Items(name=name,
                 content=content,
                 about=about,
                 characteristics=characteristics,
                 price=price)
    item.categories.append(
        db_sess.query(Category).filter(Category.name == category).first())
    db_sess.add(item)
    db_sess.commit()
示例#11
0
def basket_show():
    if current_user.is_authenticated:
        db_sess = db_session.create_session()
        id_items = [
            item[0] for item in db_sess.query(Basket.item_id).filter(
                Basket.user_id == current_user.id).all()
        ]
        print(id_items)
        items = [
            str(item).split('-') for item in db_sess.query(Items).filter(
                Items.id.in_(id_items)).all()
        ]
        return render_template("basket.html", items=items, count=len(items))
示例#12
0
def login():
    global user
    form = LoginForm()
    if form.validate_on_submit():
        db_sess = db_session.create_session()
        user = db_sess.query(User).filter(
            User.email == form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=form.remember_me.data)
            return redirect("/")
        return render_template('login.html',
                               message="Неправильный логин или пароль",
                               form=form)
    return render_template('login.html', title='Авторизация', form=form)
示例#13
0
 def get(self):
     session = db_session.create_session()
     news = session.query(Items).all()
     return jsonify(
         {
             'items':
                 [(item.to_dict(only=('id', 'name', 'content', 'characteristics', 'price')),
                   session.query(Category.name).filter(Category.id ==
                                                       session.query(category_to_items.c.category).filter(
                                                           category_to_items.c.item == str(item).split('-')[
                                                               1]).first()[0]).first()[0])
                  for item in news],
         }
     )
示例#14
0
def add_to_basket(id_item):
    if current_user.is_authenticated:
        db_sess = db_session.create_session()
        if not db_sess.query(Basket.item_id).filter(
                Basket.user_id == current_user.id).filter(
                    Basket.item_id == id_item).first():
            bas = Basket(item_id=id_item, user_id=current_user.id)
            db_sess.add(bas)
            db_sess.commit()
            flash("Товар успешно добавлен в вашу карзину.")
        else:
            flash('Товар уже у вас в корзине')
    else:
        flash(
            "Для начала войдите в вашу учётную запись для добавления товара в карзину."
        )
    return redirect("/")
示例#15
0
def main():
    db_session.global_init("db/shop_info.db")
    db_sess = db_session.create_session()
    api.add_resource(items_recources.ItemsListResource, '/api/v2/items')
    api.add_resource(items_recources.ItemsResource,
                     '/api/v2/items/<int:items_id>')
    api.add_resource(items_recources.CategoryListResource,
                     '/api/v2/categories')
    api.add_resource(items_recources.QuestionsListResource,
                     '/api/v2/questions')
    """create_item(content='AppleWatch.jpg', name='Apple Watch S5', about='Смарт-часы APPLE Watch Series 5 Nike+, 40мм, серый космос / антрацитовый/черный', characteristics='''Описание%
С новым дисплеем, который всегда остаётся включённым, Apple Watch Series 5 — ваш самый преданный помощник. Различные циферблаты и расширения позволяют узнавать информацию, не поднимая запястье. Корпус Apple Watch 5 впервые изготовлен с применением только переработанного алюминия.%
Процессор%
S5, двухъядерный%
Операционная система%
Watch OS%
Объем постоянной памяти%
32 ГБ%
Дисплей%
OLED, , 368 х 448 точек%
Сенсорный дисплей%
да%
Размер корпуса%
40 мм%''', price=31290, category='Часы')"""
    """create_item(content='ipad.jpg', name='APPLE iPad', about='Планшет APPLE iPad 2020 32Gb Wi_Fi + Cellular MYMK2RU/A, 32GB, 3G, 4G, iOS золотистый',
                characteristics='''Описание%
С новым дисплеем, который всегда остаётся включённым, Apple Watch Series 5 ваш самый преданный помощник. Различные циферблаты и расширения позволяют узнавать информацию, не поднимая запястье. Корпус Apple Watch 5 впервые изготовлен с применением только переработанного алюминия.%
Процессор%
S5, двухъядерный%
Операционная система%
Watch OS%
Объем постоянной памяти%
32 ГБ%
Дисплей%
OLED, , 368 х 448 точек%
Сенсорный дисплей%
да%
Размер корпуса%
40 мм''',
                price=40490, category='Планшеты')"""
    '''edit_item(1, content='iphone_10.jpg')
    edit_item(2, content='iphone_11.jpg')
    edit_item(3, content='samsung_s10.jpeg', name='Samsung S10')
    edit_item(4, content='samsung_a40.jpeg', name='Samsung A40')
    edit_item(5, content='xiaomi_redmi_8a.jpg', name='Xiaomi Redmi 8A')'''
    app.run(debug=True)
示例#16
0
 def post(self):
     args = parser.parse_args()
     session = db_session.create_session()
     item = Items(
         name=args['name'],
         content=args['content'],
         about=args['about'],
         characteristics=args['characteristics'],
         price=args['price']
     )
     with open(f"static/img/{args['content']}", 'wb') as f:
         f.write(args['img'].encode('latin1'))
     '''write_to_file(args['img'], args['img_name'])'''
     print(session.query(Category.id).first()[0])
     item.categories.append(session.query(Category).filter(Category.name == args['category']).first())
     session.add(item)
     session.commit()
     return jsonify({'success': 'OK'})
示例#17
0
 def get(self):
     session = db_session.create_session()
     news = session.query(User.name, User.email, Questions.question, Themes.theme).filter(
         User.id == Questions.user_id).filter(Questions.theme_id == Themes.id).all()
     print(news)
     data = {}
     for item in news:
         new_data = {'name': item[0],
                     'email': item[1],
                     'question': item[2],
                     'theme': item[3]}
     return jsonify(
         {
             'questions':
                 [{'name': item[0],
                   'email': item[1],
                   'question': item[2],
                   'theme': item[3]} for item in news]
         }
     )
示例#18
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        if form.password.data != form.password_again.data:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Пароли не совпадают")
        db_sess = db_session.create_session()
        if db_sess.query(User).filter(User.email == form.email.data).first():
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Такой пользователь уже есть")
        user = User(name=form.name.data,
                    email=form.email.data,
                    about=form.about.data)
        user.set_password(form.password.data)
        db_sess.add(user)
        db_sess.commit()
        return redirect('/login')
    return render_template('register.html', title='Регистрация', form=form)
示例#19
0
def create_basket(title, content, user_id):
    basket = Basket(title=title, content=content, user_id=user_id)
    db_sess = db_session.create_session()
    db_sess.add(basket)
    db_sess.commit()
示例#20
0
def delete_item(item_id):
    db_sess = db_session.create_session()
    item = db_sess.query(Items).filter(Items.id == item_id).first()
    db_sess.delete(item)
    db_sess.commit()
示例#21
0
def abort_if_news_not_found(items_id):
    session = db_session.create_session()
    news = session.query(Items).get(items_id)
    if not news:
        abort(404, message=f"Items {items_id} not found")
示例#22
0
def load_user(user_id):
    db_sess = db_session.create_session()
    return db_sess.query(User).get(user_id)