Пример #1
0
def userdata():
    userid = session.get('u_id')
    sqlsession = sqlModel.DBSession()
    book1 = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_name, sqlModel.Book.b_stock
    ).filter(sqlModel.Recommendation.u_id == userid).filter(
        sqlModel.Book.b_id == sqlModel.Recommendation.recommendation1).first()
    book2 = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_name, sqlModel.Book.b_stock
    ).filter(sqlModel.Recommendation.u_id == userid).filter(
        sqlModel.Book.b_id == sqlModel.Recommendation.recommendation2).first()
    book3 = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_name, sqlModel.Book.b_stock
    ).filter(sqlModel.Recommendation.u_id == userid).filter(
        sqlModel.Book.b_id == sqlModel.Recommendation.recommendation3).first()
    book4 = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_name, sqlModel.Book.b_stock
    ).filter(sqlModel.Recommendation.u_id == userid).filter(
        sqlModel.Book.b_id == sqlModel.Recommendation.recommendation4).first()
    book5 = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_name, sqlModel.Book.b_stock
    ).filter(sqlModel.Recommendation.u_id == userid).filter(
        sqlModel.Book.b_id == sqlModel.Recommendation.recommendation5).first()

    return render_template('/userdata.html',
                           book1=book1,
                           book2=book2,
                           book3=book3,
                           book4=book4,
                           book5=book5)
Пример #2
0
def addToorderform(book_id, amount):
    userid = session.get('u_id')
    sqlsession = sqlModel.DBSession()
    today = datetime.today()
    orderformitem = sqlModel.OrderForm(u_id=userid,
                                       b_id=book_id,
                                       amount=amount,
                                       type=1,
                                       time=today)
    try:
        sqlsession.add(orderformitem)
        sqlsession.commit()
        sqlsession.query(
            sqlModel.Book).filter(book_id == sqlModel.Book.b_id).update({
                sqlModel.Book.b_stock:
                sqlModel.Book.b_stock - amount,
                sqlModel.Book.b_totalSold:
                sqlModel.Book.b_totalSold + amount
            })
        sqlsession.commit()
        sqlsession.close()
    except Exception as e:
        sqlsession.rollback()
        sqlsession.close()
    return redirect(url_for('.userbooks'))
Пример #3
0
def useraddaddress():

    addressform = addressForm()
    if request.method == 'POST':
        province = request.form.get('province')
        city = request.form.get('city')
        area = request.form.get('area')
        street = request.form.get('street')
        realname = request.form.get('consignee')
        tel = request.form.get('tel')
        address = province + city + area + street
        u_id = session.get('u_id')
        if u_id:
            sqlsession = sqlModel.DBSession()
            sqlsession.query(
                sqlModel.User).filter(u_id == sqlModel.User.u_id).update({
                    sqlModel.User.u_address:
                    address,
                    sqlModel.User.realname:
                    realname,
                    sqlModel.User.tel:
                    tel
                })
            sqlsession.commit()
            sqlsession.close()
            flash('添加成功')
        else:
            flash('添加失败!')
    return render_template('/useraddaddress.html', form=addressform)
Пример #4
0
def usertocomment(bookid):
    userid = session.get('u_id')
    sqlsession = sqlModel.DBSession()
    book = sqlsession.query(
        sqlModel.Book).filter(sqlModel.Book.b_id == bookid).first()

    sqlsession.close()
    return render_template('/usertocomment.html', book=book)
Пример #5
0
def addbooknum(book_id):
    if request.method == 'POST':
        sqlsession = sqlModel.DBSession()
        amount = request.form.get('num')
        sqlsession.query(
            sqlModel.Book).filter(book_id == sqlModel.Book.b_id).update(
                {sqlModel.Book.b_stock: sqlModel.Book.b_stock + amount})
        sqlsession.commit()
        return redirect(url_for('.editbook'))
Пример #6
0
def admin_context_processor():
    admin_id = session.get('admin_id')
    if admin_id:
        sqlsession = sqlModel.DBSession()
        admin = sqlsession.query(
            sqlModel.admin).filter(sqlModel.admin.id == admin_id).first()
        sqlsession.close()
        if admin:
            return {'admin': admin}
    return {'admin': None}
Пример #7
0
def user_context_processor():
    user_id = session.get('u_id')
    if user_id:
        sqlsession = sqlModel.DBSession()
        user = sqlsession.query(
            sqlModel.User).filter(sqlModel.User.u_id == user_id).first()
        sqlsession.close()
        if user:
            return {'user': user}
    return {'user': None}
Пример #8
0
def userbookindex():
    sqlsession = sqlModel.DBSession()
    #从get方法中取得页码
    page = request.args.get('page', 1, type=int)
    #获取pagination对象
    pagination = sqlsession.query(sqlModel.Book).order_by(
        sqlModel.Book.b_date).paginate(page, per_page=10, error_out=False)

    #pagination对象的items方法返回当前页的内容列表
    sqlsession.close()
    posts = pagination.items
    return render_template('/userbookindex.html',
                           posts=posts,
                           pagination=pagination)
Пример #9
0
def changeadmininfo():
    login_form = LoginForm()
    if request.method == 'POST':
        adminname = request.form.get('username')
        password = request.form.get('password')
        if login_form.validate_on_submit():
            sqlsession = sqlModel.DBSession()
            sqlsession.query(sqlModel.admin).filter(
                adminname == sqlModel.admin.name).update(
                    {sqlModel.admin.password: password})
            sqlsession.commit()
            sqlsession.close()
            flash("修改成功!!!")
    return render_template("/changeadmininfo.html", form=login_form)
Пример #10
0
def adminuserlist():
    sqlsession = sqlModel.DBSession()
    #从get方法中取得页码
    page = request.args.get('page', 1, type=int)
    #获取pagination对象
    pagination = sqlsession.query(sqlModel.User).order_by(
        sqlModel.User.u_id).paginate(page, per_page=10, error_out=False)

    #pagination对象的items方法返回当前页的内容列表
    sqlsession.close()
    posts = pagination.items
    return render_template('/adminuserlist.html',
                           posts=posts,
                           pagination=pagination)
Пример #11
0
def addtocart(book_id):
    if request.method == 'POST':
        amount = request.form.get('bookNum')
        userid = session.get('u_id')
        sqlsession = sqlModel.DBSession()
        book = sqlsession.query(
            sqlModel.Book).filter(sqlModel.Book.b_id == book_id).first()
        user = sqlsession.query(
            sqlModel.User).filter(sqlModel.User.u_id == userid).first()
        address = user.u_address
        #        orderformitem =  sqlModel.OrderForm(u_id=userid,b_id=book_id,amount=amount)
        totalPrice = float(amount) * book.b_price
        sqlsession.close()
        return render_template('/userpayforbook.html',
                               posts=book,
                               amount=amount,
                               totalPrice=totalPrice,
                               address=address)
Пример #12
0
def init():
    dim = 30
    sqlsession = sqlModel.DBSession()
    NumUser = sqlsession.query(func.count(sqlModel.User.u_id)).scalar()
    NumBook = sqlsession.query(func.count(sqlModel.Book.b_id)).scalar()
    sqlsession.close()
    amount = max(NumUser, NumBook)

    bu = np.zeros((amount), np.double) + 0.01
    bi = np.zeros((amount), np.double) + 0.01
    pu = np.zeros((amount, dim), np.double) + 0.01
    qi = np.zeros((amount, dim), np.double) + 0.01
    y = np.zeros((amount, dim), np.double) + 0.01
    z = np.zeros((amount, dim), np.double)

    train_ui = dict()

    train_ui, ave = fileOperation.loadFile()

    return ave, bu, bi, pu, qi, y, train_ui, z, amount
Пример #13
0
def userregister():
    register_form = userRegisterForm()

    if request.method == 'POST':
        gender = request.form.get('gender')
        username = request.form.get('username')
        password = request.form.get('password')
        #       confirmpassword=request.form.get('confirmpassword')
        age = request.form.get('age')

        if register_form.validate_on_submit():
            sqlsession = sqlModel.DBSession()
            user = sqlsession.query(sqlModel.User).filter(
                sqlModel.User.u_name == username).first()
            if user:
                flash('此用户名已被使用')
                sqlsession.close()
            else:
                id = sqlsession.query(sqlModel.User).count() + 1
                item = sqlModel.User(u_id=id,
                                     u_name=username,
                                     u_password=password,
                                     u_age=age,
                                     u_sex=gender,
                                     u_address='NULL')
                item1 = sqlModel.Recommendation(u_id=id)
                try:
                    sqlsession.add(item)
                    sqlsession.commit()
                    sqlsession.add(item1)
                    sqlsession.commit()
                    sqlsession.close()
                except Exception as e:
                    flash("注册失败!!!")
                    sqlsession.rollback()
                context = {'gender': gender, 'name': username, 'age': age}

                return render_template("/userregistersuccess.html", **context)
        else:
            flash('参数有误')
    return render_template("/userregister.html", form=register_form)
Пример #14
0
def login():
    login_form = LoginForm()
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        if login_form.validate_on_submit():
            sqlsession = sqlModel.DBSession()
            user = sqlsession.query(sqlModel.admin).filter(
                sqlModel.admin.name == username).first()
            if not user:
                flash("此用户不存在")
            elif user.password == password:
                session['admin_id'] = user.id
                return redirect(url_for('.index'))
            else:
                flash("用户名密码不匹配")

            sqlsession.close()
        else:
            flash('参数有误')
    return render_template("/login.html", form=login_form)
Пример #15
0
def addTocomment():
    if request.method == 'POST':
        userid = session.get('u_id')
        bookid = request.form.get('bookId')
        comment = request.form.get('content')
        starNum = request.form.get('starNum')
        rate = float(starNum)
        fileOperation.writeTofile(userid, bookid, rate)
        sqlsession = sqlModel.DBSession()
        sqlsession.query(sqlModel.OrderForm).filter(
            sqlModel.OrderForm.u_id == userid).filter(
                sqlModel.OrderForm.b_id == bookid).update(
                    {
                        sqlModel.OrderForm.rate: rate,
                        sqlModel.OrderForm.comment: comment
                    },
                    synchronize_session='fetch')

        sqlsession.commit()
        sqlsession.close()
        return redirect(url_for('.usertocomment', bookid=bookid))
Пример #16
0
def userbooks():
    sqlsession = sqlModel.DBSession()
    userid = session.get('u_id')
    page = request.args.get('page', 1, type=int)
    pagination = sqlsession.query(
        sqlModel.Book.b_id, sqlModel.Book.b_type, sqlModel.Book.b_author,
        sqlModel.Book.b_name, sqlModel.Book.b_price, sqlModel.Book.b_publish,
        sqlModel.OrderForm.rate).filter(
            sqlModel.OrderForm.u_id == userid).filter(
                sqlModel.OrderForm.b_id == sqlModel.Book.b_id).order_by(
                    sqlModel.OrderForm.time).paginate(page,
                                                      per_page=10,
                                                      error_out=False)

    #pagination对象的items方法返回当前页的内容列表
    sqlsession.close()
    posts = pagination.items

    return render_template('/userbooks.html',
                           posts=posts,
                           pagination=pagination)
Пример #17
0
def addbook():
    bookForm = addBookForm()
    if request.method == 'POST':
        bookname = request.form.get('name')
        bookprice = request.form.get('price')
        bookauthor = request.form.get('author')
        booktype = request.form.get('type')
        bookpublishcorp = request.form.get('publishcorp')
        bookstock = request.form.get('stock')

        if bookForm.validate_on_submit():
            sqlsession = sqlModel.DBSession()
            book = sqlsession.query(sqlModel.Book).filter(
                sqlModel.Book.b_name == bookname).first()
            if book:
                flash('此书已存在')
                sqlsession.close()
            else:
                id = sqlsession.query(sqlModel.Book).count() + 1
                today = datetime.today()
                item = sqlModel.Book(b_id=id,
                                     b_name=bookname,
                                     b_author=bookauthor,
                                     b_publish=bookpublishcorp,
                                     b_type=booktype,
                                     b_price=bookprice,
                                     b_stock=bookstock,
                                     b_totalSold=0,
                                     b_date=today)
                try:
                    sqlsession.add(item)
                    sqlsession.commit()
                    sqlsession.close()
                    flash('添加成功!')
                except Exception as e:
                    flash("添加失败!!!")
                    sqlsession.rollback()
        else:
            flash("信息不完整!!!")
    return render_template('/addbook.html', form=bookForm)
Пример #18
0
def orderinfo():
    sqlsession = sqlModel.DBSession()
    #从get方法中取得页码
    page = request.args.get('page', 1, type=int)
    #获取pagination对象
    pagination = sqlsession.query(
        sqlModel.OrderForm.id, sqlModel.OrderForm.b_id,
        sqlModel.OrderForm.u_id, sqlModel.OrderForm.time,
        sqlModel.OrderForm.type, sqlModel.User.u_name, sqlModel.User.u_address,
        sqlModel.Book.b_name).join(
            sqlModel.User, sqlModel.User.u_id == sqlModel.OrderForm.u_id).join(
                sqlModel.Book,
                sqlModel.Book.b_id == sqlModel.OrderForm.b_id).order_by(
                    sqlModel.OrderForm.time).paginate(page,
                                                      per_page=10,
                                                      error_out=False)

    #pagination对象的items方法返回当前页的内容列表
    sqlsession.close()
    posts = pagination.items
    return render_template('/orderinfo.html',
                           posts=posts,
                           pagination=pagination)