def setUp(self): Base.metadata.drop_all(self.engine) Base.metadata.create_all(self.engine) self.author_1 = Authors( name='Nason Alex', born='1943-03-26', nationality='American', education='Yale University, BA, 1965', description='investigative journalist', wikipedia_url='https://en.wikipedia.org/wiki/Bob_Woodward', image_url= 'http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Bob_Woodward.jpg/220px-Bob_Woodward.jpg' ) self.author_2 = Authors( name='Patrick Rothfuss', born='1994-08-13', nationality='Chinese', image_url= "http://upload.wikimedia.org/wikipedia/commons/thumb/7/7f/Patrick-rothfuss-2014-kyle-cassidy.jpg/250px-Patrick-rothfuss-2014-kyle-cassidy.jpg" ) self.author_3 = Authors(name='Robin Hortz', nationality='Australian', born='1952-03-05') self.publisher_1 = Publishers( name='Simon & Schuster', founded='1924', wikipedia_url="https://en.wikipedia.org/wiki/Simon_%26_Schuster", website="http://www.simonandschuster.com") self.publisher_2 = Publishers(name='HarperCollins', founded='1989', location='New York', website='http://harpercollins.com') self.publisher_3 = Publishers(name='Penguin Group', founded='1935', location='City of Westminster, London') self.book_1 = Books(title='Royal Assassin', google_id='kx12345', publication_date='2003-04-05') self.book_1.authors.append(self.author_3) self.book_2 = Books(title='Under the sea', google_id='34567', publication_date='2017-09-21') self.book_2.publishers.append(self.publisher_1) self.author_2.publishers.append(self.publisher_2) self.session.add(self.author_1) self.session.add(self.author_2) self.session.add(self.author_3) self.session.add(self.publisher_1) self.session.add(self.publisher_2) self.session.add(self.publisher_3) self.session.add(self.book_1) self.session.add(self.book_2) self.session.commit()
def update(id): book = Books.query.filter_by(id=id).first() if request.method == 'POST': if book: db.session.delete(book) db.session.commit() title = request.form['title'] author = request.form['author'] genre = request.form['genre'] heigh = request.form['heigh'] publisher = request.form['publisher'] book = Books(id=id, title=title, author=author, genre=genre, heigh=heigh, publisher=publisher) db.session.add(book) db.session.commit() return redirect(f'/view/{id}') else: return "Book with id = {0} Does not exits".format(id) return render_template('update.html', data=book, title="Update")
def books(): if request.method == "GET": all_books = Books.query.all() return make_response({"book": BooksSchema(many=True).dump(all_books)}, 200) book = Books.query.filter_by(isbn=request.json['isbn']).first() if book: book.isbn = request.json['isbn'] book.publisher = request.json['publisher'] book.author = request.json['author'] book.publication_year = request.json['publication_year'] book.category = request.json['category'] book.count = request.json['count'] book.title = request.json['title'] db.session.commit() return make_response({"Book": BooksSchema().dump(book)}, 200) else: book = Books() book.isbn = request.json['isbn'] book.title = request.json['title'] book.publisher = request.json['publisher'] book.author = request.json['author'] book.publication_year = request.json['publication_year'] book.category = request.json['category'] book.count = request.json['count'] db.session.add(book) db.session.commit() return make_response({"Book": BooksSchema().dump(book)}, 200)
def regist(): name = request.forms.decode().get('name') volume = request.forms.decode().get('volume') author = request.forms.decode().get('author') publisher = request.forms.decode().get('publisher') memo = request.forms.decode().get('memo') registId = request.forms.decode().get('id') if request.forms.get('next') == 'back': response.status = 307 response.set_header("Location", '/add') return response else: if registId is not None: books = session.query(Books).filter(Books.id_ == registId).first() books.name = name books.volume = volume books.author = author books.publisher = publisher books.memo = memo session.commit() session.close() else: logging.info('Adding a new book') books = Books(name=name, volume=volume, author=author, publisher=publisher, memo=memo) session.add(books) session.commit() session.close() redirect('/list')
def add_book(form): title = form.get('title') author = form.get('author') isbn = form.get('isbn') book = Books(title=title, author=author, isbn=isbn) year = form.get('year') if year: year = int(year) book.year = year review = form.get('review') rating = form.get('rating') try: db.session.add(book) db.session.commit() except Exception as e: print(e) return False book = Books.query.filter_by(title=title).first() print('Book', book) if rating: rating = int(form.get('rating')) book.num_rating = 1 book.avg_rating = rating review = Reviews(rating=rating, text=review, bookid=book.id) try: db.session.add(book) db.session.add(review) db.session.commit() except: return False return True
def create(self, data): title = data['title'] author = data['author'] unit_price = data['unit_price'] books = Books(title, author, unit_price) db.session.add(books) db.session.commit() return create_books(books)
def main(): f = open("/Users/prakashtiwari/Desktop/project1/books.csv") reader = csv.reader(f) for isbn, title, author, year in reader: books = Books (isbn = isbn, title = title, author = author, year = year) db.session.add(books) print(f"Added books isbn = {isbn} title = {title} author = {author} year = {year}.") db.session.commit()
def insert_into_table(file_name): with open(file_name) as csvfile: reader = csv.reader(csvfile, delimiter=',') next(reader, None) for isbn, title, author, year in reader: item = Books(isbn, title, author, year) db.session.add(item) db.session.commit()
def create_book(valid): if valid: #todo ---- if request.method == 'GET': books = Books.query.all() if not books: abort(make_response(jsonify('No books added yet'))) return jsonify({ 'success': True, 'books': [Books.details(book) for book in books] }) else: try: new_book = request.get_json() except Exception as e: abort( make_response( jsonify({'error message': 'Incorrect data'}))) if all(k in new_book for k in ('title', 'author', 'user_id')): book = Books(title=new_book['title'], author=new_book['author'], created_by=new_book['user_id']) try: book.insert() except sqlalchemy.exc.IntegrityError as e: abort( make_response( jsonify({ 'message': 'provided user does not exist' }))) except Exception as e: db.session.rollback() abort(404, e) result = { "success": True, "message": 'book ' + new_book['title'] + ' has been added successfully' } return jsonify(result) else: abort( make_response( jsonify({ 'message': 'You seem to have missed some data: Provide title of the book, its author ' 'and user_id who created the book' })))
def add(): binfo = bookinfo() for b in binfo: title, cover, author, category = b book = Books(title=title, cover=cover, author=author, category=category) db.session.add(book) db.session.commit() return render_template("add.html")
def delete_book(current_user, book_id): try: book = Books().get_by_id(book_id) if not book or book["user_id"] != current_user["_id"]: return { "message": "Book not found for user", "data": None, "error": "Not found" }, 404 Books().delete(book_id) return jsonify({ "message": "successfully deleted a book", "data": None }), 204 except Exception as e: return jsonify({ "message": "failed to delete a book", "error": str(e), "data": None }), 400
def populate(dbname, jsondata): """docstring for populate""" session = connect(dbname) with open(jsondata) as f: data = json.load(f) for i in data['books']: book_data = Books(Title = i["Title"], Author = i["Author"], ReadOrNot = "0") session.add(book_data) session.commit()
def test_books_insert(self): self.session.add( Books(title='Nothing to Envy', google_id='0385523912', publication_date='2009-12-29')) self.session.commit() result = self.session.query(Books).filter_by( title='Nothing to Envy').one() self.assertEqual(str(result.google_id), '0385523912') self.assertEqual(str(result.publication_date), '2009-12-29') self.session.query(Books).filter_by(title='Nothing to Envy').delete() self.session.commit()
def post_books(payload): body = request.get_json() try: book = Books(body['book_name'], body['book_type'], body['book_rate']) book.insert() except BaseException: abort(401) return jsonify({"sucess": True, "book": book.id}), 200
def get_books(current_user): try: books = Books().get_by_user_id(current_user["_id"]) return jsonify({ "message": "successfully retrieved all books", "data": books }) except Exception as e: return jsonify({ "message": "failed to retrieve all books", "error": str(e), "data": None }), 500
def update_book(current_user, book_id): try: book = Books().get_by_id(book_id) if not book or book["user_id"] != current_user["_id"]: return { "message": "Book not found for user", "data": None, "error": "Not found" }, 404 book = request.form if book.get('cover_image'): book["image_url"] = request.host_url+"static/books/"+save_pic(request.files["cover_image"]) book = Books().update(book_id, **book) return jsonify({ "message": "successfully updated a book", "data": book }), 201 except Exception as e: return jsonify({ "message": "failed to update a book", "error": str(e), "data": None }), 400
def test_delete_books_1(self): self.session.add( Books(title='1999', google_id='34167', publication_date='2017-04-21')) self.session.commit() query = self.session.query(Books).filter_by(title="1999").first() self.assertTrue(str(query.title), "1999") self.session.query(Books).filter_by(title='1999').delete() self.session.commit() number = self.session.query(Books).filter_by(title='1999').count() self.assertTrue(str(number), "0")
def userpost(): form = PostForm() if form.validate_on_submit(): isbn = form.isbn.data info = bookinfo(isbn) if info != None: title, cover, author = info book = Books(isbn=isbn, title=title, cover=cover, author=author) db.session.add(book) db.session.commit() flash("Your post is live") return redirect(url_for('user')) #books = Book.query.join(User).filter(User.username == username) books = Books.query.all() return render_template('post.html', form=form)
def create_book(): if request.method == 'POST': title = request.form['title'] annotation = request.form['annotation'] """Данные из POST запроса заносим в БД""" try: book = Books(title=title, annotation=annotation) db.session.add(book) db.session.commit() except: print('Error') """Перенаправляем на страницу со списком книг""" return redirect(url_for('books.list_book')) """Иначе выгружаем форму для добавления книги""" form = BookForm() return render_template('books/create_book.html', form=form)
def migrate(): df = pd.read_csv('../books.csv') count = 0 for i in range(len(df)): row = df.loc[i] book = Books(isbn=row.isbn, title=row.title, author=row.author, year=int(row.year)) try: db.session.add(book) count += 1 except: pass db.session.commit() return {'Inserted Successfully': count}
def addbook(request): books = Books.objects.all() if request.user.is_staff: if request.method == "POST": name = request.POST['book'] author = request.POST['author'] copies = request.POST['copies'] status = request.POST['status'] book = Books(name=name, author=author, copies=copies, status=status) book.save() return redirect("/lend/addbook") else: return render(request, "lend/addbook.html", {'books': books})
def insert(): if request.method == 'GET': return render_template("insert.html") if request.method == 'POST': title = request.form['title'] author = request.form['author'] genre = request.form['genre'] height = request.form['height'] publisher = request.form['publisher'] if not title or not author or not genre or not height or not publisher: return render_template("insert.html", message="** กรุณาใส่ข้อมูลให้ครบถ้วน **") book = Books(title=title, author=author, genre=genre, height=height, publisher=publisher) db.session.add(book) db.session.commit() return redirect('/')
def createBooks(): form = forms.BookFormRegister( CombinedMultiDict((request.files, request.form))) if request.method == 'POST' and form.validate(): f = form.imagen.data filename = secure_filename(f.filename) path = os.path.join(app.config['UPLOAD_FOLDER'], filename) otherpath = path.replace('static/', '') f.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) book = Books(form.titulo.data, form.editorial.data, form.numeroPaginas.data, form.genero.data, form.autor.data, form.precio.data, otherpath) db.session.add(book) db.session.commit() return redirect(url_for('admin')) return render_template('admin_views/view_create_books.html', form=form)
def insert(): if request.method == 'POST': title = request.form['title'] author = request.form['author'] genre = request.form['genre'] heigh = request.form['heigh'] publisher = request.form['publisher'] book = Books(title=title, author=author, genre=genre, heigh=heigh, publisher=publisher) db.session.add(book) db.session.commit() return redirect(f'/') return render_template('insert.html', title="Insert")
def profile(usern): if request.method == 'POST': file = request.files['file'] if file and allowed_file(file.filename): filename = secure_filename(file.filename) basedir = os.path.abspath(os.path.dirname(__file__)) file.save( os.path.join(basedir, app.config['UPLOAD_FOLDER'], filename)) isbn = request.form['isbn'] bookauthor = request.form['author'] booktitle = request.form['title'] yrpublished = request.form['yrpub'] publisher = request.form['pub'] img = str(file.filename) # 9724119378 # (self,isbn,bookauthor,booktitle,yrpublished,publisher,imgurl1) form = Books( isbn=isbn, bookauthor=bookauthor, booktitle=booktitle, yrpublished=yrpublished, publisher=publisher, imgurl1=img, ) db.session.add(form) db.session.commit() return redirect('/profile/' + str(usern)) showbooks = Books.query.all() print(len(showbooks)) details = Users.query.filter_by(username=usern).first() print(details) recommended = get_recommendations(details.shelfid) print str(details.shelfid) + '<---' return render_template('user_profile.html', details=details, recommended=recommended, showbooks=showbooks)
def insert(): if request.method == 'GET': return render_template("insert.html") #ส่งค่า if request.method == 'POST': title = request.form['title'] author = request.form['author'] genre = request.form['genre'] height = request.form['height'] publisher = request.form['publisher'] book = Books(title=title, author=author, genre=genre, height=height, publisher=publisher) db.session.add(book) db.session.commit() return redirect('/')
def get_book(book_id): try: book = Books().get_by_id(book_id) if not book: return { "message": "Book not found", "data": None, "error": "Not Found" }, 404 return jsonify({ "message": "successfully retrieved a book", "data": book }) except Exception as e: return jsonify({ "message": "Something went wrong", "error": str(e), "data": None }), 500
def pod(): form2 = Titles() title = "Submit " + str(app) username = "******" if form2.validate_on_submit(): book = Books() book.title = form2.title.data book.author = form2.author.data book.description = form2.description.data try: book.username = username except AttributeError: book.username = "******" s = "abcdefghijklmnopqrstuvwxyz" passlen = 6 book.uri = "".join(random.sample(s, passlen)) this_bot = Bots.query.filter_by(username="******").first() try: client_id = this_bot.client_id except AttributeError: return redirect("/") secret = this_bot.secret password = this_bot.password username = this_bot.username reddit = praw.Reddit(client_id=client_id, client_secret=secret, password=password, user_agent='Copypasta', username="******") try: reddit_url = reddit.subreddit('publishcopypasta').name except praw.exceptions.APIException: reddit_url = "No url" post = RedditPost(uri=book.uri, reddit_url=reddit_url, title=book.title, body=book.description, username=book.username) book.reddit_url = reddit_url db.session.add(post) db.session.commit() db.session.add(book) db.session.commit() return redirect("/")
def new_books(payload, id): try: data = request.get_json() add_name = data.get('name') add_author = data.get('author') add_category = data.get('category_id') new_addition = Books(name=add_name, author=add_author, category_id=add_category) new_addition.insert() return jsonify({ "name": add_name, "author": add_author, "category": add_category, "success": True, "message": "successfully added a new book" }), 200 except Exception: abort(422)
async def babelli(ctx, arg, arg2): msg = "" key = arg url = "https://oaflopean.pythonanywhere.com/?key=" + key data = requests.post(url, auth=('oaflopean', 'babellibot')) text_model = markovify.Text(data.content.decode("utf-8")) for i in range(int(arg2)): try: msg = msg + " " + text_model.make_sentence() + " " except TypeError: continue print(data) if len(msg) == 0: await ctx.send("Sorry! Try more options.") else: chunks, chunk_size = len(msg), len(msg) / (len(msg) / 1995) list = [ msg[i:i + int(chunk_size)] for i in range(0, chunks, int(chunk_size)) ] for msg_pt in list: await ctx.send(msg_pt) book = Books() book.title = arg + " " + str(arg2) book.author = ctx.message.author.name book.description = msg s = "abcdefghijklmnopqrstuvwxyz" passlen = 12 book.uri = "".join(random.sample(s, passlen)) book.reddit_url = "http://oaflopean.pythonanywhere.com/?key=" + book.uri post = RedditPost(uri=book.uri, reddit_url=book.reddit_url, title=book.title, body=book.description, username=book.username) db.session.add(post) db.session.commit() db.session.add(book) db.session.commit() await ctx.send(book.reddit_url)