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)
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)
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
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
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)
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)
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)
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' })