예제 #1
0
파일: auth.py 프로젝트: fyr233/foods-left
def register():
    if request.method == 'POST':
        user_phone= request.form['user_phone']
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None

        if user_phone == '123':
            error = 'Root is not availble.'
        elif not user_phone:
            error = 'User phone is required.'
        elif not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif db.execute(
            'SELECT user_phone FROM user WHERE user_phone = ?', (user_phone,)
        ).fetchone() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            db.execute(
                'INSERT INTO user (user_phone, username, password, is_seller) VALUES (?, ?, ?, ?)',
                (user_phone, username, generate_password_hash(password), 0)
            )
            db.commit()
            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')
예제 #2
0
def update(id):
    product = get_products(id)

    if request.method == 'POST':
        qualitytime = request.form['qualitytime']
        producetime = request.form['producetime']
        type = request.form['type']
        productname = request.form['productname']
        price = request.form['price']
        error = None

        if not productname:
            error = 'Product name is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            db.execute(
                'UPDATE product SET productname = ?, producetime = ?, qualitytime = ?, type = ?, price = ?'
                ' WHERE product_create = ?',
                (productname, producetime, qualitytime, type, price, id)
            )
            db.commit()
            return redirect(url_for('products.index'))

    return render_template('products/update.html')
예제 #3
0
def create():
    if request.method == 'POST':
        qualitytime = request.form['qualitytime']
        producetime = request.form['producetime']
        type = request.form['type']
        productname = request.form['productname']
        price = request.form['price']
        error = None
        product_create = random.randint(1, 3);

        if not productname:
            error = 'Product name is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            db.execute(
                'INSERT INTO product (product_create, seller_phone, producetime, qualitytime, type, productname, price)'
                ' VALUES (?, ?, ?, ?, ?, ?, ?)',
                (product_create, g.user['user_phone'], producetime, qualitytime, type, productname, price)
            )
            db.commit()
            return redirect(url_for('products.index'))

    return render_template('products/create.html')
예제 #4
0
def receive(id):
    db = get_db()
    db.execute(
        ' UPDATE trade SET cancel = 2 WHERE product_create = ?',
        (id, )
    )
    db.commit()
    return redirect(url_for('products.list'))
예제 #5
0
def index():
    db = get_db()
    products = db.execute(
        'SELECT p.product_create, p.productname, p.price, p.type, p.producetime, p.qualitytime, s.seller_phone, s.storename'
        ' FROM product p JOIN seller s ON p.seller_phone = s.seller_phone'
        ' ORDER BY p.producetime DESC'
    ).fetchall()
    return render_template('index.html', products=products)
예제 #6
0
파일: auth.py 프로젝트: fyr233/foods-left
def load_logged_in_user():
    user_phone = session.get('user_phone')

    if user_phone is None:
        g.user = None
    else:
        g.user = get_db().execute(
            'SELECT * FROM user WHERE user_phone = ?', (user_phone,)
        ).fetchone()
예제 #7
0
def list():
    db = get_db()
    products = db.execute(
        'SELECT p.product_create, p.productname, p.price, p.type, p.producetime, p.qualitytime, s.seller_phone, s.storename, t.trade_time , t.cancel , t.user_phone FROM product p ,seller s , trade t'
        ' WHERE p.seller_phone = s.seller_phone AND t.product_create = p.product_create'
        ' AND (t.user_phone = ? OR t.seller_phone = ?)'
        'ORDER BY t.trade_time DESC',
        (g.user['user_phone'], g.user['user_phone'])
    )
    db.commit()
    return render_template('products/trade.html', products=products)
예제 #8
0
def get_products(id, check_author=True):
    product = get_db().execute(
        'SELECT p.product_create, productname, price, type, producetime, qualitytime, s.seller_phone'
        ' FROM product p JOIN seller s ON p.seller_phone = s.seller_phone'
        ' WHERE p.product_create = ?',
        (id,)
    ).fetchone()

    if product is None:
        abort(404, "Product id {0} doesn't exist.".format(id))


    print("???")
    return product
예제 #9
0
def trade(id):

    product = get_products(id)
    nowtime = datetime.datetime.now()

    #print(os.getcwd())
    qr = pyqrcode.create(str(id))
    qr.svg("static/image/qrcodes/"+str(id)+"-qrcode.svg", scale=8)#没写完#现在写完了

    db = get_db()
    db.execute(
        'INSERT INTO trade (product_create, user_phone, seller_phone, trade_time, cancel, trade_number)'
        ' VALUES (?, ?, ?, ?, ?, ?)',
        (id, g.user['user_phone'], product['seller_phone'], nowtime, 0, 1)
    )
    db.commit()
    return redirect(url_for('products.list'))
예제 #10
0
파일: auth.py 프로젝트: fyr233/foods-left
def store():
    if request.method == 'POST':
        user_phone = request.form['user_phone']
        username = request.form['username']
        password = request.form['password']
        storename = request.form['storename']
        location = request.form['location']
        seller_intro = request.form['seller_intro']
        begintime = request.form['begintime']
        endtime = request.form['endtime']

        db = get_db()
        error = None

        if not user_phone:
            error = 'User phone is required.'
        elif not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif db.execute(
            'SELECT user_phone FROM user WHERE user_phone = ?', (user_phone,)
        ).fetchone() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            db.execute(
                'INSERT INTO user (user_phone, username, password, is_seller) VALUES (?, ?, ?, ?)',
                (user_phone, username, generate_password_hash(password), 1)
            )
            db.commit()

            db.execute(
                'INSERT INTO seller (seller_phone, storename, seller_intro, location, begintime, endtime)'
                'VALUES (?, ?, ?, ?, ?, ?)', (user_phone, storename, seller_intro, location, begintime, endtime)
            )
            db.commit()

            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/store.html')
예제 #11
0
파일: auth.py 프로젝트: fyr233/foods-left
def login():
    error = None
    if request.method == 'POST':
        password = request.form['password']
        user_phone = request.form['user_phone']
        db = get_db()
        error = None
        user = db.execute(
            'SELECT * FROM user WHERE user_phone = ?', (user_phone,)
        ).fetchone()

        if user is None:
            error = 'Incorrect phone number.'
        elif not check_password_hash(user['password'], password):
            error = 'Incorrect password.'

        if error is None:
            session.clear()
            session['user_phone'] = user['user_phone']
            return redirect(url_for('index'))


    return render_template('auth/login.html',  error=error)
예제 #12
0
def orderdelete(id):
    get_products(id)
    db = get_db()
    db.execute('DELETE FROM trade WHERE product_create = ?', (id,))
    db.commit()
    return redirect(url_for('products.index'))