示例#1
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag = request.form['tag']
        query = json.loads(request.form['query'])
        store = Store(name, url_prefix, tag, query)
        store.save_to_mongo()
        return redirect(url_for("stores.index"))
    return render_template("stores/create_store.jinja2")
示例#2
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_mongo()
        flash("Store {} successfully added.".format(name))
        return redirect(url_for('.index'))

    return render_template('/stores/create_store.html')
示例#3
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = request.form['query']
        review = request.form['review']

        Store(name, url_prefix, tag_name, query, review).save_to_db()
        return render_template('stores/store_index.jinja2', stores=Store.all())

    # What happens if it's a GET request
    return render_template("stores/new_store.jinja2")
示例#4
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_db()

        return redirect(url_for('stores.index'))

    return render_template('stores/create_store.html')
示例#5
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query, store_id)
        store.update_db(store_id)

        return redirect(url_for('stores.index'))

    store = Store.find_by_id(store_id)
    return render_template('stores/edit_store.html', store=store)
示例#6
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        #  json.loads converts JSON string to Python dictionary

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_db()
        return redirect(url_for('stores.index'))
    else:
        #  it's a GET not a POST
        return render_template(base_model + '/' + 'create_store.html')
示例#7
0
def edit_store(store_id):
    if request.method == 'POST':
        store = Store.get_by_id(store_id)
        store.name = request.form['name']
        store.url_prefix = request.form['url_prefix']
        store.tag_name = request.form['tag_name']
        store.query = json.loads(request.form['query'])

        store.save_to_mongo()

        flash("Store {} successfully updated.".format(store_id))
        return redirect(url_for('.index'))

    return render_template('/stores/edit_store.html',
                           store=Store.get_by_id(store_id))
示例#8
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        store = Store.get_by_id(store_id)
        store.name = name
        store.url_prefix = url_prefix
        store.tag_name = tag_name
        store.query = query
        store.save_to_mongo()
        return redirect(url_for('.index'))

    return render_template("stores/edit_store.html", store=Store.get_by_id(store_id))
示例#9
0
    def __init__(self, url, name=None, price=None, _id=None):

        self.url = url
        store = Store.find_by_url(url)  # store where the item lives

        # price won't be a passing parameter anymore, it will be a query
        # we access python properties instead having to raise methods
        self.tag_name = store.tag_name

        # e.g. Item("Wool Blend Peacoat",
        # "http://www.johnlewis.com/kin-by-john-lewis-wool-blend-peacoat-navy/p3033177",
        # Store("John Lewis",
        #       "http://www.johnlewis.com/",
        #       "span",
        #       {"itemprop":"price","class":"now-price"}))
        self.pricequery = store.pricequery

        # the query result, a string price, will be stored to self.price
        # initially it will be None, subsequently it will download price from database
        self.price = None if price is None else price

        # when an Item is created, it won't automatically load price or name
        # one need to call the method to web scrape price and name

        # e.g. Item("Wool Blend Peacoat",
        # "http://www.johnlewis.com/kin-by-john-lewis-wool-blend-peacoat-navy/p3033177",
        # Store("John Lewis",
        #       "http://www.johnlewis.com/",
        #       "span",
        #       {"itemprop":"name"}))
        self.namequery = store.namequery
        # the query result, a string price, will be stored to self.price
        self.name = self.load_name() if name is None else name

        self._id = uuid.uuid4().hex if _id is None else _id
示例#10
0
def create():
    if request.method=='POST':
        name=request.form['name']
        url=request.form['url']
        tag=request.form['tag']
        query=request.form['query']
        query=query.replace("'", '"')
        query=json.loads(query)
        headers=request.form['headers']
        headers=headers.replace("'", '"')
        headers=json.loads(headers)
        store=Store(name, url, tag, query, header=headers)
        store.save_to_mongo()
        return redirect(url_for('.stores'))

    return render_template('stores/new.jinja2')
示例#11
0
文件: item.py 项目: alexasih/Learning
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#12
0
 def __init__(self, name, url, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     tag_name = store.tag_name
     query = store.query
     self.price = self.load_price(tag_name, query)
     self._id = uuid.uuid4().hex if _id is None else _id
示例#13
0
 def __init__(self, name, url, _id=uuid4().hex):
     self._id = _id
     self.name = name
     self.url = url
     store = Store.get_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None
示例#14
0
 def __init__(self, name, url, price= None,_id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#15
0
def edit_store(store_name):
    if request.method == 'POST':
        tag_name = request.form['tag_name']
        query = request.form['query']
        review = request.form['review']

        store = Store.get_by_name(store_name)

        store.tag_name = tag_name
        store.query = query
        store.review = review

        store.save_to_db()

        return redirect(url_for('.index'))

    return render_template("stores/edit_store.jinja2", store=Store.get_by_name(store_name))
示例#16
0
 def __init__(self, url, name, category, price=None):
     self.url = url
     self.name = name
     self.category = category
     self.price = None if price is None else price
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
示例#17
0
 def __init__(self, name, url, price=None, _id=None):
     self._id = uuid.uuid4().hex if _id is None else _id
     self.name = name
     self.url = url
     store = Store.get_by_url(url)
     self.tag_name = store.get_tag_name()
     self.query = store.get_query()
     self.price = price
示例#18
0
 def __init__(self, name, url, price=None, img_src=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.price_tag = store.price_tag
     self.price_query = store.price_query
     self.price = None if price is None else price
     self.img_src = self.get_img_src(store.img_query, store.img_src_tag) if img_src is None else img_src
     self._id = uuid.uuid4().hex if _id is None else _id
示例#19
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     corresponding_store = Store.find_store_by_url(url)
     self.tag_name = corresponding_store.tag_name
     self.query = corresponding_store.query
     #self.price = self.load_item(tag_name, query)
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#20
0
 def __init__(self, name, url, price=None,_id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price   # self.load_price(tag_name, query)
     self._id = uuid.uuid4().hex if _id is None else _id
     print "INIT item" + "price:" + str(self.price)
示例#21
0
 def __init__(self, name, url, store_id, price=None, _id=None):
     self.name = name
     self.url = url
     self.store_id = store_id
     store = Store.get_by_id(store_id)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#22
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/new_store.jinja2')
示例#23
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_store_from_url(url)
     self.tag_name = store.tag_name
     # is the html expression from inspect element in soup.find()
     self.query = store.query
     # self.price = self.load_price(tag_name, query) # not necessary
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#24
0
def create_store():

    # in case we receive GET - this is the first time the page is opened
    # in case we receive  POST - we have the details
    if request.method == 'GET':
        return render_template('stores/create_store.html')
    else:
        # get from the request the newly created alert details
        name = request.form['name']
        url_prefix = request.form['url']
        tag_name = request.form['tag_name']
        # need to format the query as json
        query = json.load(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)

        store.save_to_mongo()

        return redirect(url_for('stores.index'))
示例#25
0
def create_store():
    if request.method == "POST":
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'].replace("'", '"'))
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))

    return render_template("stores/create_store.html")
示例#26
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     store = Store.find_by_url(url)
     self.url = url
     # store hold the name of the element that represent price
     self.tag_name = store.tag_name
     # store will hold the specific query with attributes that match the tag
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#27
0
def edit_store(store_id):
    store = Store.get_by_id(uuid.UUID(store_id))
    if request.method == 'POST':
        store.name = request.form['name']
        store.url_prefix = request.form['url_prefix']
        store.tag_name = request.form['tag_name']
        store.query = json.loads(request.form['query'])
        store.save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/edit_store.jinja2', store=store)
示例#28
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        Store(name, url_prefix, tag_name, query).save_to_mongo()

    return render_template("stores/new_store.html")
示例#29
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store.get_by_id(store_id)

        store.name = name
        store.url_prefix = url_prefix
        store.tag_name = tag_name
        store.query = query

        store.save_to_mongo()

        return redirect(url_for('.index'))

    # What happens if it's a GET request
    return render_template("stores/edit_store.jinja2", store=Store.get_by_id(store_id))
示例#30
0
 def __init__(self, url, name=None, price=None, _id=None):
     self.url = url
     store = Store.get_by_full_url(url)
     n_tag_name = store.n_tag_name
     n_query = store.n_query
     self.name = self.load_name(n_tag_name,
                                n_query) if name is None else name
     self.p_tag_name = store.p_tag_name
     self.p_query = store.p_query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
示例#31
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(
            request.form['query']
        )  # convert string representation of query to dictionary
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/create_store.jinja2')
示例#32
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        Store(name, url_prefix, tag_name, query).save_to_mongo()

    # What happens if it's a GET request
    return render_template("stores/new_store.jinja2")
示例#33
0
def edit_store(store_id):
    store = Store.get_by_id(store_id)
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store.name=name
        store.url_prefix=url_prefix
        store.tag_name=tag_name
        store.query=query
        store.save_to_mongo()

        return redirect(url_for('.index'))
    return render_template('stores/edit_store.html',store=store)
示例#34
0
def index():
    stores = Store.all()
    return render_template('stores/store_index.jinja2', stores=stores)
示例#35
0
def store_page(store_id):
    return render_template('stores/store.jinja2', store=Store.get_by_id(store_id))
示例#36
0
def store_page(store_id):
    store = Store.get_by_id(store_id)
    return render_template('stores/store.html', store=store)
示例#37
0
def delete_store(store_id):
    Store.get_by_id(store_id).delete()
    return redirect(url_for('.index'))
示例#38
0
def delete_store(store_id):
    Store.get_by_id(store_id).delete()
示例#39
0
def index():
    stores = Store.all()
    return render_template('/stores/store_index.html', stores=stores)