コード例 #1
0
ファイル: admin.py プロジェクト: zouchao2010/cakeshop
    def get(self):
        status = self.get_argument("status", None)
        ft = (Order.status >= 0)
        if status:
            ft = ft & (Order.status == status)

        page = int(self.get_argument("page", 1))
        pagesize = self.settings['admin_pagesize']

        oq = Order.select().where(ft)
        total = oq.count()

        orders = []
        for order in oq.paginate(page, pagesize).order_by(
                Order.ordered.desc()).dicts():
            order['orderitems'] = []
            try:
                order['ua'] = UserAddr.get(id=order['uaid'])
            except:
                order['ua'] = UserAddr()

            try:
                order['distr'] = Distribution.get(id=order['distrid'])
            except:
                order['distr'] = Distribution()

            for orderitem in OrderItem.select().where(
                    OrderItem.oid == order['id']).dicts():

                try:
                    orderitem['shop'] = Shop.get(id=orderitem['sid'])
                    if orderitem['said'] > 0:
                        orderitem['shopattr'] = ShopAttr.get(
                            id=orderitem['said'])

                    order['orderitems'].append(orderitem)
                except:
                    orderitem['shop'] = Shop()

            if order['orderitems']:
                orders.append(order)

        self.render('admin/order.html',
                    orders=orders,
                    total=total,
                    page=page,
                    pagesize=pagesize)
コード例 #2
0
ファイル: crud.py プロジェクト: tristansokol/coffee-project
def create_shop(shop_id,
                name,
                lat,
                lng,
                address_num=None,
                address_street=None,
                zipcode=None):
    """Create a shop, add to db, return shop."""

    shop = Shop(shop_id=shop_id,
                name=name,
                address_num=address_num,
                address_street=address_street,
                zipcode=zipcode,
                lat=lat,
                lng=lng)
    db.session.add(shop)
    db.session.commit()
    return shop
コード例 #3
0
ファイル: server.py プロジェクト: leavename/leavename
def new_shop(req: ShopCreateRequest):
    try:
        b64decode(req.shop_pub_key)
    except binascii.Error:
        raise HTTPException(status_code=status.HTTP_400_BAD_REQUEST,
                            detail='公鑰錯誤')
    shop = Shop(name=req.name, shop_pub_key=req.shop_pub_key)
    private_key = PrivateKey.generate()
    box = SecretBox(SERVER_MASTER_SECRET)
    try:
        Secret(shop=shop,
               server_secret_key=b64encode(
                   box.encrypt(private_key._private_key)).decode('ascii'))
        commit()
    except TransactionIntegrityError:
        rollback()
        raise HTTPException(status_code=status.HTTP_409_CONFLICT,
                            detail='公鑰已被使用')

    return b64encode(private_key.public_key._public_key).decode('ascii')
コード例 #4
0
ファイル: manage.py プロジェクト: bileser/budget-gruentee
session.commit()

shop_handlings = [
    {'url': 'https://www.kobu-teeversand.de', 'name': "Kobu Tee ® und Futon", 'spider': KobuSpider},
   {'url': 'https://www.teehandel-kolodziej-shop.de/', 'name': "Teehandel Kolodziej e.K.",
    'spider': KolodziejSpider},
   {'url': 'https://www.nibelungentee.de', 'name': "Nibelungentee 
internet-connect GmbH",
    'spider': NibelungenSpider},
   {'url': 'https://www.sunday.de', 'name': "Sunday Natural Products GmbH", 'spider': SundaySpider},
   {'url': 'https://www.teaworld.de/', 'name': "Teaworld OHG", 'spider': TeaworldSpider}
]

for shop_handling in shop_handlings:
    shop = session.query(Shop).filter_by(name=shop_handling['name']).first()
    if not shop:
        shop = Shop(name=shop_handling['name'], url=shop_handling['url'])
        session.add(shop)
    try:
        spider = shop_handling['spider'](shop_handling['url'], logging)
        products = spider.get_products()
        for product in products:
            save_product(session, product, shop)
        session.commit()
    except:
        logging.info("exception in spider {}".format(shop_handling.spider))
        pass

# clean
max_date = session.query(func.max(Price.date)).all()[0]
logging.info("delete products with date < {}".format(max_date))
print("delete products with date < {}".format(max_date))
コード例 #5
0
import sqlalchemy as sa
from sqlalchemy.orm import Query, scoped_session, sessionmaker
import datetime
from model import Publisher, Book, Shop, Stock, Sale
from engine_session import engine, Session

#################### setup some data ######################
pub1 = Publisher(name='МИФ')
sa.session.add(pub1)
sa.session.commit()

book1 = Book(title='45 татуировок менеджера', id_publisher=0)
sa.session.add(book1)
sa.session.commit()

sh1 = Shop(name='Буквоед-1')
sa.session.add(sh1)
sa.session.commit()

st1 = Stock(id_book=0, id_shop=0, count=100)
sa.session.add(st1)
sa.session.commit()

sale1 = Sale(price=570, date_sale=datetime.today(), id_stock=0, count=84)
sa.session.add(sale1)
sa.session.commit()
コード例 #6
0
ファイル: db.py プロジェクト: sgeorgakis/products_near_you
def load_data(data_path):
    """
     (str) -> set

     Loads the data from the csv file.
     It creates and returns a set of all the Products.
    """
    shop_dict = {}

    log.info('Loading data...')
    start_time = int(round(time() * 1000))
    #   Load shops
    try:
        with open(data_path + '/shops.csv') as shop_file:
            reader = csv.DictReader(shop_file)
            for row in reader:
                shop = Shop(row['id'], row['name'], row['lat'], row['lng'])
                shop_dict[shop.id] = shop
    except IOError as e:
        log.error(e)

    shop_time = int(round(time() * 1000))
    log.debug('Loaded shops in {0} ms'.format((shop_time - start_time)))

    #   Load tags
    tag_dict = {}
    try:
        with open(data_path + '/tags.csv') as tag_file:
            reader = csv.DictReader(tag_file)
            for row in reader:
                tag_dict[row['id']] = row['tag']
        with open(data_path + '/taggings.csv') as taggings_file:
            reader = csv.DictReader(taggings_file)
            for row in reader:
                if row['shop_id'] in shop_dict:
                    shop_dict[row['shop_id']].tags.add(tag_dict[row['tag_id']])
    except IOError as e:
        log.error(e)

    tag_time = int(round(time() * 1000))
    log.debug('Loaded tags in {0} ms'.format((tag_time - start_time)))

    #   Load products
    products = set()
    try:
        with open(data_path + '/products.csv') as product_file:
            reader = csv.DictReader(product_file)
            for row in reader:
                product = Product(row['id'], row['title'], row['popularity'],
                                  row['quantity'])
                if row['shop_id'] in shop_dict:
                    product.shop = shop_dict[row['shop_id']]
                products.add(product)
    except IOError as e:
        log.error(e)

    product_time = int(round(time() * 1000))
    log.debug('Loaded products in {0} ms'.format((product_time - tag_time)))

    end_time = int(round(time() * 1000))
    log.info('Loaded data in {0} ms'.format((end_time - start_time)))

    return products
コード例 #7
0
ファイル: admin.py プロジェクト: zouchao2010/cakeshop
    def post(self, cid):
        try:
            category = Category.get(id=cid)
        except:
            self.flash("此分类不存在")
            self.redirect("/admin/addshop")
            return

        categoryattrs = CategoryAttr.select().where(CategoryAttr.cid == cid)

        cover = self.get_argument("cover", None)
        pics = self.get_argument("pics", None)
        name = self.get_argument("name", None)
        ename = self.get_argument("ename", None)
        price = str(float(str(self.get_argument("price", 0.0))))
        level = int(self.get_argument("level", 3))
        resume = self.get_argument("resume", "")
        intro = self.get_argument("intro", "")
        prompt = self.get_argument("prompt", "")
        views = int(self.get_argument("views", 0))

        try:
            shop = Shop()
            shop.name = name
            shop.ename = ename
            shop.cid = cid
            shop.level = level
            shop.resume = resume
            shop.intro = intro
            shop.prompt = prompt
            shop.price = price
            shop.views = views

            args = {}
            for categoryattr in categoryattrs:
                caid = str(categoryattr.id)
                args['attr_' + caid] = self.get_argument('attr_' + caid, '')

            shop.args = simplejson.dumps(args)

            if pics:
                pics = pics.split(',')
                pics = [pic.replace('/upload/', '') for pic in pics]

                if not cover:
                    cover = pics[0]

            if not cover:
                cover = ''

            shop.cover = cover.replace('/upload/', '')
            shop.validate()
            shop.save()

            if isinstance(pics, list):
                for pic in pics:
                    shoppic = ShopPic()
                    shoppic.sid = shop.id
                    shoppic.path = pic
                    shoppic.save()

            self.flash(u"添加商品%s成功" % name, 'ok')
            if category.id == 2:
                self.redirect("/admin/shops")
            else:
                self.redirect("/admin/addshopattr/" + str(shop.id))
            return
        except Exception, ex:
            self.flash(str(ex))