def files_upload(): if request.method == 'GET': return render_template('upload.html') elif request.method == 'POST': import os upload_files = request.files.getlist('files[]') upload_file_type = request.values['type'] if upload_file_type == "" or upload_file_type is None: return unprocessable_entry("type is required parameters") return_json = [] for upload_file in upload_files: file_name = secure_filename(upload_file.filename) if file_name == "": return unprocessable_entry("file name are required parameters") #확장자 변경 file_name_list = file_name.split(".") if file_name_list[-1] == "jpg-original": file_name_list[-1] = "jpg" file_type = file_name_list[-1] #파일 중복 확인 files_count = db_session.query(File).filter(File.file_name == file_name).count() if files_count > 0: file_name_list[-2] = file_name_list[-2]+"_"+str(files_count) file_name = ".".join(file_name_list) print(UPLOAD_FOLDER+"/"+upload_file_type+"/"+file_name) #파일 저장 file_path = UPLOAD_FOLDER+"/"+upload_file_type+"/"+file_name upload_file.save(os.path.join(file_path)) #파일 사이즈 file_size = os.path.getsize(file_path) new_file = File(file_name, file_type, file_size/1024.0, request.host_url[:-1]+file_path[1:], upload_file_type) db_session.add(new_file) try: db_session.commit() data = new_file.to_json() data['href'] = request.host_url[:-1] + url_for('files_api.files_detail', file_id=new_file.id) return_json.append(data) except Exception: return unprocessable_entry("file should") return render_template('upload.html')
def filter_by_order(cls, query, order): if not order in ['desc', 'asc']: return None, unprocessable_entry( "order parameter invalid, try desc or asc") if order == 'desc': return query.order_by(-cls.year), None return query.order_by(cls.year), None
def create_new_image(database, artist=None, **params): new_image = Image(artist=artist, **params) database.session.add(new_image) try: database.session.commit() data = new_image.to_json_with_detail return created_response(data) except Exception: return unprocessable_entry("title, image_url, image_description should be string, year should be integer")
def create_new_artist(database, **params): new_artist = Artist(**params) database.session.add(new_artist) try: database.session.commit() data = new_artist.to_json_with_detail return created_response(data) except Exception: return unprocessable_entry("name, country, genre should be string, birth_year, death_year should be integer")
def images_list_post(): required_params = [ 'title', 'image_url', 'image_year', 'artist_name', 'image_description' ] params = { param: request.values[param] for param in request.values if param in required_params if nullify(request.values[param]) } if len(params) != len(required_params): return unprocessable_entry( "title, image_url, image_year, artist_name, image_description are required parameters" ) artist = Artist.query.filter(Artist.name == params['artist_name']).first() if not artist: return unprocessable_entry( "artist_name not found, artist_name should be in our artists database to add new image." ) return create_new_image(db, artist=artist, **params)
def artists_list_post(): input_params = ['name', 'country', 'genre', 'birth_year', 'death_year'] params = { param: request.values[param] for param in request.values if param in input_params if nullify(request.values[param]) } if not ('name' in params and 'country' in params and 'genre' in params): return unprocessable_entry( "name, country, genre are required parameters") return create_new_artist(db, **params)
def create_new_artist(database, **params): new_artist = Artist(**params) database.session.add(new_artist) try: database.session.commit() data = new_artist.to_json_with_detail return created_response(data) except Exception: return unprocessable_entry( "name, country, genre should be string, birth_year, death_year should be integer" )
def artists_list_post(): input_params = ['name', 'country', 'genre', 'birth_year', 'death_year'] params = { param: request.values[param] for param in request.values if param in input_params if nullify(request.values[param]) } if not ('name' in params and 'country' in params and 'genre' in params): return unprocessable_entry("name, country, genre are required parameters") return create_new_artist(db, **params)
def filter_by_order(cls, query, order): if not order in ['desc', 'asc']: return None, unprocessable_entry("order parameter invalid, try desc or asc") if order == 'desc': return query.order_by(-cls.year), None return query.order_by(cls.year), None