Example #1
0
def gallery_do_upload():
    res = JsonResponse()
    res.resMsg = 'Upload start.'
    if 'photo' in request.files:
        try:
            photos = UploadSet('photos', IMAGES)
            configure_uploads(current_app, (photos))
            filename = photos.save(request.files['photo'])
            gflag = GalleryMiddleware().save_one(
                link=photos.url(filename),
                tags=request.form.getlist('tags'),
                caption=request.form['caption']
            )
            if gflag:
                res.resMsg = 'Note: Photo saved successfully.'
            else:
                res.resMsg = 'Note: Failed to save photo.'
            res.data = {
                'link': photos.url(filename),
                'tags': request.form.getlist('tags'),
                'caption': request.form['caption']
            }
        except Exception:
            res.resCode = -1
            res.resMsg = 'Error: Upload failed.\n\n' + \
                'The file size maybe exceeds limited size [' + \
                '{0}'.format(current_app.config['MAX_CONTENT_LENGTH_MB']) + \
                'MB].'
            pass
    else:
        res.resCode = -1
        res.resMsg = 'Error: Cannot find the file field in your upload form.'
    # print(res.outputJsonString()) # Print for test.
    return res.outputJsonString()
def update(id):
    data = get_data(id)
    con = db.connect()
    cursor = con.cursor(db.getDictCursor())
    cursor.execute("SELECT * FROM promotions")
    promotions = cursor.fetchall()

    form = RewardForm(obj=data, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        promotion_id = request.form['promotion_id'] or 'NULL'
        name = request.form['name'] or 'NULL'
        info = request.form['info'] or 'NULL'
        point = request.form['point'] or 'NULL'
        value = request.form['value'] or 'NULL'
        type = request.form['type'] or 'NULL'
        updated_by = session['user_id'] or 'NULL'
        photo = request.files['photo']

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            if 'photo' not in request.files:
                cursor.execute(
                    "UPDATE rewards SET \
                                promotion_id=%s, name=%s, info=%s, \
                                point=%s, value=%s, updated_by=%s, type=%s \
                                WHERE id=%s", (promotion_id, name, info, point,
                                               value, updated_by, type, id))
            else:
                if photo and allowed_file(photo.filename):
                    photos = UploadSet('photos', IMAGES)
                    configure_uploads(app, photos)
                    filename = photos.save(request.files['photo'])
                    file_url = photos.url(filename)

                cursor.execute(
                    "UPDATE rewards SET \
                                promotion_id=%s, name=%s, info=%s, \
                                point=%s, value=%s, updated_by=%s, type=%s, path=%s \
                                WHERE id=%s",
                    (promotion_id, name, info, point, value, updated_by, type,
                     file_url, id))

            con.commit()
            flash('Operation success')
            return redirect(url_for('reward.update', id=id))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            return redirect(url_for('reward.update', id=id))
        finally:
            con.close()

    return render_template('back/reward/update.html',
                           form=form,
                           data=data,
                           promotions=promotions)
Example #3
0
def add_data():
    if not current_user.is_authenticated:
        return redirect(url_for('base_blueprint.login'))

    data_form = UploadDataForm()
    docs = UploadSet('documents', ['xls', 'xlsx', 'csv'])

    if data_form.validate_on_submit():
        filename = docs.save(data_form.file.data)
        file_url = docs.url(filename)
        print(docs.path(filename))

        patients = pd.read_excel(docs.path(filename))
        print(patients)
        added = 0

        for index, row in patients.iterrows():
            patient = Patient()
            patient.full_name = row["ФИО"]
            patient.iin = row["ИИН"]
            patient.dob = datetime.strptime(row["Дата рождения"], '%d.%m.%Y')
            patient.citizenship = row["Гражданство"]
            patient.pass_num = row["Номер паспорта"]
            patient.telephone = row["Номер мобильного телефона"]
            patient.arrival_date = datetime.strptime(row["Дата въезда"],
                                                     '%d.%m.%Y')
            patient.flight_code = row["рейс"]
            patient.visited_country = row[
                "Место и сроки пребывания в последние 14 дней до прибытия в Казахстан (укажите страну, область, штат и т.д.)"]
            patient.region = row["регион"]
            patient.home_address = row[
                "Место жительство, либо предпологаемое место проживания"]
            patient.job = row["Место работы"]
            patient.is_found = True if row["Найден (да/нет)"].lower(
            ) == "да" else False
            patient.in_hospital = True if row[
                "Госпитализирован (да/нет)"].lower() == "да" else False
            patient.hospital = row["Место госпитализации"] if not pd.isnull(
                row["Место госпитализации"]) else ""

            query = "{}, {}".format(patient.region, patient.home_address)
            results = geocoder.geocode(query)

            if len(results):
                patient.address_lat = results[0]['geometry']['lat']
                patient.address_lng = results[0]['geometry']['lng']

            db.session.add(patient)
            db.session.commit()
            added += 1

        # # else we can create the user
        return route_template('add_data', form=data_form, added=added)
        # return render_template( 'login/register.html', success='User created please <a href="/login">login</a>', form=patient_form)
    else:
        return route_template('add_data', form=data_form, added=-1)
Example #4
0
 def test_url_based(self):
     app = Flask(__name__)
     app.config.update(UPLOADED_FILES_DEST='/uploads',
                       UPLOADED_FILES_URL='http://localhost:5001/')
     uset = UploadSet('files')
     configure_uploads(app, uset)
     with app.test_request_context():
         url = uset.url('foo.txt')
         assert url == 'http://localhost:5001/foo.txt'
     assert '_uploads' not in app.modules
Example #5
0
 def test_url_based(self):
     app = Flask(__name__)
     app.config.update(
         UPLOADED_FILES_DEST='/uploads',
         UPLOADED_FILES_URL='http://localhost:5001/'
     )
     uset = UploadSet('files')
     configure_uploads(app, uset)
     with app.test_request_context():
         url = uset.url('foo.txt')
         assert url == 'http://localhost:5001/foo.txt'
     assert '_uploads' not in app.blueprints
Example #6
0
 def test_url_generated(self):
     app = Flask(__name__)
     app.config.update(
         UPLOADED_FILES_DEST='/uploads'
     )
     uset = UploadSet('files')
     configure_uploads(app, uset)
     with app.test_request_context():
         url = uset.url('foo.txt')
         gen = url_for('_uploads.uploaded_file', setname='files',
                       filename='foo.txt', _external=True)
         assert url == gen
def create():
    con = db.connect()
    cursor = con.cursor(db.getDictCursor())
    cursor.execute("SELECT * FROM promotions")
    promotions = cursor.fetchall()

    form = RewardForm(request.form, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        promotion_id = request.form['promotion_id'] or 'NULL'
        name = request.form['name']
        info = request.form['info'] or 'NULL'
        point = request.form['point'] or 'NULL'
        value = request.form['value'] or 'NULL'
        type = request.form['type'] or 'NULL'
        created_by = session['user_id'] or 'NULL'
        photo = request.files['photo']
        file_url = ""

        if photo and allowed_file(photo.filename):
            photos = UploadSet('photos', IMAGES)
            configure_uploads(app, photos)
            filename = photos.save(request.files['photo'])
            file_url = photos.url(filename)

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            cursor.execute(
                "INSERT INTO \
                            rewards( \
                                promotion_id, name, info,\
                                point, value, created_by, type, path \
                            ) VALUES(%s, %s, %s, %s, %s, %s, %s, %s)",
                (promotion_id, name, info, point, value, created_by, type,
                 file_url))
            con.commit()
            flash('Operation success')
            return redirect(url_for('reward.create'))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            flash(message)
            return redirect(url_for('reward.create'))
        finally:
            con.close()
    return render_template('back/reward/create.html',
                           form=form,
                           promotions=promotions)
def create():
    form = SplashScreenForm(request.form, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        name = request.form['name'] or 'NULL'
        photo = request.files['photo']
        is_active = 'is_active' in request.form
        file_url = ""

        if is_active == True:
            is_active = 1
        else:
            is_active = 0

        if 'photo' not in request.files:
            flash('No file part')
            return redirect(request.url)

        if photo.filename == '':
            flash('No selected file')
            return redirect(request.url)

        if photo and allowed_file(photo.filename):
            photos = UploadSet('photos', IMAGES)
            configure_uploads(app, photos)
            filename = photos.save(request.files['photo'])
            file_url = photos.url(filename)

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            cursor.execute(
                "INSERT INTO splash_screens(name, photo, is_active) VALUES(%s, %s, %s)",
                (name, file_url, is_active))
            con.commit()
            flash('Operation success')
            return redirect(url_for('splash_screen.create'))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            flash(message)
            return redirect(url_for('splash_screen.create'))
        finally:
            con.close()
    return render_template('back/splash_screen/create.html', form=form)
def update(id):
    data = get_data(id)

    form = SplashScreenForm(obj=data, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        name = request.form['name'] or 'NULL'
        photo = request.files['photo']
        is_active = 'is_active' in request.form
        file_url = ""

        if is_active == True:
            is_active = 1
        else:
            is_active = 0

        if 'photo' not in request.files:
            flash('No file part')
            return redirect(request.url)

        if photo and allowed_file(photo.filename):
            photos = UploadSet('photos', IMAGES)
            configure_uploads(app, photos)
            filename = photos.save(request.files['photo'])
            file_url = photos.url(filename)

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            cursor.execute(
                "UPDATE splash_screens SET name=%s, photo=%s, is_active=%s WHERE id=%s",
                (name, file_url, is_active, id))
            con.commit()
            flash('Operation success')
            return redirect(url_for('splash_screen.update', id=id))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            return redirect(url_for('splash_screen.update', id=id))
        finally:
            con.close()
    return render_template('back/splash_screen/update.html',
                           form=form,
                           data=data)
Example #10
0
def moment():
    form = MomentForm()
    file_url_list = []
    if form.validate_on_submit():
        dir_path = basedir + '/app/static/moment_pic/'
        upload_path = create_path(dir_path)
        photos = UploadSet('photos', IMAGES)
        for img in request.files.getlist('photo'):
            name = hashlib.md5(
                (current_user.username +
                 str(time.time())).encode('utf8')).hexdigest()[:15]
            img_name = photos.save(img, folder=upload_path, name=name + '.')
            # print(upload_path,img_name)
            base_width = 300
            img = Image.open(photos.path(img_name))
            w_percent = (base_width / float(img.size[0]))
            h_size = int((float(img.size[1]) * float(w_percent)))
            img_s = img.resize((base_width, h_size), PIL.Image.ANTIALIAS)
            fn, ext = img_name.split('.')
            # fn,ext = os.path.splitext(img_name)
            img_s_name = name + '_s.' + ext
            # print('./app/static/moment_pic/' + upload_path+img_s_name)
            img_s.save('app/static/moment_pic/' + upload_path + img_s_name,
                       ext)
            # './app/static/moment_pic/' + str(upload_path)
            # img_s = photos.save(img_s, folder=upload_path, name=name + '_s' + '.')
            # img_s_url = photos.url(img_name)
            img_s_url = photos.url(upload_path + img_s_name)
            file_url_list.append(img_s_url)
        # print(file_url)
        Moment(username=current_user.username,
               picture=file_url_list,
               content=form.content.data,
               user_id=current_user.id).save()
        flash('发布成功!', 'success')
        return redirect(url_for('.index'))
    else:
        pass
    return render_template('post_moment.html',
                           form=form,
                           file_url_list=file_url_list)
Example #11
0
def create():
    con = db.connect()
    cursor = con.cursor(db.getDictCursor())
    cursor.execute("SELECT * FROM categories")
    categories = cursor.fetchall()

    cursor.execute("SELECT * FROM types")
    types = cursor.fetchall()

    form = ProductForm(request.form, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        sku = request.form['sku'] or 'NULL'
        name = request.form['name'] or 'NULL'
        description = request.form['description'] or 'NULL'
        category_id = request.form['category_id']
        type_id = request.form['type_id']
        normal_price = request.form['normal_price'] or 0
        point = request.form['point'] or 0
        weight = request.form['weight'] or 0
        extra_fee = request.form['extra_fee'] or 0
        created_by = session['user_id'] or 'NULL'
        medias = request.files.getlist("medias[]")
        is_disabled = 'is_disabled' in request.form
        file_url = ""
        sizes = ["S", "M", "L", "XL", "XXL"]
        type = "image"

        if is_disabled == True:
            is_disabled = 1
        else:
            is_disabled = 0

        photos = UploadSet('photos', IMAGES)
        configure_uploads(app, photos)

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            cursor.execute(
                "INSERT INTO \
                            products( \
                                category_id, type_id, sku, name,\
                                description, normal_price, point, weight, extra_fee, \
                                is_disabled, created_by \
                            ) VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                (category_id, type_id, sku, name, description, normal_price,
                 point, weight, extra_fee, is_disabled, created_by))
            product_id = cursor.lastrowid

            for size in sizes:
                cursor.execute(
                    "INSERT INTO product_sizes(product_id, size) VALUES(%s, %s)",
                    (product_id, size))

            for i, media in enumerate(medias):
                sorting = str(request.form['sorting_' + str(i + 1)])
                if allowed_file(media.filename):
                    filename = photos.save(media)
                    path = photos.url(filename)
                    cursor.execute(
                        "INSERT INTO product_media(product_id, path, sorting, type) VALUES(%s, %s, %s, %s)",
                        (product_id, path, sorting, type))

            con.commit()
            flash('Operation success')
            return redirect(url_for('product.create'))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            flash(message)
            return redirect(url_for('product.create'))
        finally:
            con.close()

    return render_template('back/product/create.html',
                           form=form,
                           categories=categories,
                           types=types)
Example #12
0
def update(id):
    data = get_data(id)
    sizes = []

    con = db.connect()
    cursor = con.cursor(db.getDictCursor())
    cursor.execute("SELECT * FROM categories")
    categories = cursor.fetchall()

    cursor.execute("SELECT * FROM types")
    types = cursor.fetchall()

    cursor.execute("SELECT * FROM product_sizes WHERE product_id=%s", (id))
    product_sizes = cursor.fetchall()
    for ps in product_sizes:
        sizes.append(ps['size'])

    cursor.execute("SELECT * FROM product_media WHERE product_id=%s", (id))
    product_media = cursor.fetchall()

    form = ProductForm(obj=data, csrf_enabled=False)
    if request.method == 'POST' and form.validate_on_submit():
        sku = request.form['sku'] or 'NULL'
        name = request.form['name'] or 'NULL'
        description = request.form['description'] or 'NULL'
        category_id = request.form['category_id']
        type_id = request.form['type_id']
        normal_price = request.form['normal_price'] or 0
        point = request.form['point'] or 0
        weight = request.form['weight'] or 0
        extra_fee = request.form['extra_fee'] or 0
        updated_by = session['user_id'] or 'NULL'
        medias = request.files.getlist("medias[]")
        post_sizes = request.form.getlist("sizes[]")
        is_disabled = 'is_disabled' in request.form
        file_url = ""
        type = "image"

        if is_disabled == True:
            is_disabled = 1
        else:
            is_disabled = 0

        photos = UploadSet('photos', IMAGES)
        configure_uploads(app, photos)

        con = db.connect()
        cursor = con.cursor(db.getDictCursor())
        try:
            cursor.execute(
                "UPDATE \
                            products SET category_id=%s, type_id=%s, sku=%s, \
                            name=%s, description=%s, normal_price=%s, point=%s, \
                            weight=%s, extra_fee=%s, is_disabled=%s, updated_by=%s \
                            WHERE id=%s",
                (category_id, type_id, sku, name, description, normal_price,
                 point, weight, extra_fee, is_disabled, updated_by, id))

            cursor.execute("DELETE FROM product_sizes WHERE product_id=%s",
                           (id))
            for ps in post_sizes:
                cursor.execute(
                    "INSERT INTO product_sizes(product_id, size) VALUES(%s, %s)",
                    (id, ps))

            for i, media in enumerate(medias):
                sorting = str(request.form['sorting_' + str(i + 1)])
                media_id = str(request.form['id_' + str(i + 1)])

                if allowed_file(media.filename):
                    filename = photos.save(media)
                    path = photos.url(filename)
                    if media_id == "":
                        cursor.execute(
                            "INSERT INTO product_media(product_id, path, sorting, type) VALUES(%s, %s, %s, %s)",
                            (id, path, sorting, type))
                    else:
                        cursor.execute(
                            "UPDATE product_media SET path=%s WHERE id=%s",
                            (path, media_id))
            con.commit()
            flash('Operation success')
            return redirect(url_for('product.update', id=id))
        except cursor.InternalError as e:
            code, message = e.args
            con.rollback()
            flash(message)
            return redirect(url_for('product.update', id=id))
        finally:
            con.close()

    return render_template('back/product/update.html',
                           form=form,
                           data=data,
                           categories=categories,
                           sizes=sizes,
                           types=types,
                           product_sizes=product_sizes,
                           product_media=product_media)
def upload_avatar():
    #注册
    uploaded_photos = UploadSet()
    configure_uploads(current_app, uploaded_photos)

    if request.method == 'POST':
        # check if the post request has the file part
        if 'avatar' not in request.files:
            print 'No file part'
            return json.dumps({
                'result': "failed",
                'filename': '',
                'msg': 'No avatar part'
            })
        file = request.files['avatar']
        # if user does not select file, browser also submit a empty part without filename
        if file.filename == '':
            print 'No selected file'
            return json.dumps({
                'result': "failed",
                'filename': '',
                'msg': 'No selected file'
            })
        else:
            try:
                #存储
                filename = uploaded_photos.save(file)
                avatar_url = uploaded_photos.url(filename)
                print '%s url is %s' % (filename, avatar_url)

                email = current_user.get_id()
                #update数据库
                try:
                    result_user = db.session.query(ASNUser).filter(
                        ASNUser.email == email).first()
                    result_user.avatar = avatar_url

                    result_expert = db.session.query(
                        Expert_detail_total).filter(
                            Expert_detail_total.email == email).first()
                    result_expert.avatar = avatar_url

                    db.session.commit()
                except Exception, e:
                    print "无法更新头像"
                    return json.dumps({
                        'result': "failed",
                        'filename': '',
                        'msg': 'Error occurred'
                    })

                download_url = current_app.config[
                    'UPLOADS_DEFAULT_DEST'] + '/files/' + filename
                print "download_url: ", download_url
                # 图片压缩
                im = Image.open(download_url)
                im_resize = im.resize((256, 256))
                im_resize.save(download_url)

                return json.dumps({
                    'result': "successed",
                    'filename': filename,
                    'msg': avatar_url
                })
            except Exception as e:
                print 'upload file exception: %s' % e
                return json.dumps({
                    'result': "failed",
                    'filename': '',
                    'msg': 'Error occurred'
                })