コード例 #1
0
    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()
コード例 #2
0
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")
コード例 #3
0
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)
コード例 #4
0
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')
コード例 #5
0
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
コード例 #6
0
 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)
コード例 #7
0
ファイル: import.py プロジェクト: Praqash/project1
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()
コード例 #8
0
ファイル: inserts.py プロジェクト: arunkhattri/cs50-flask-app
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()
コード例 #9
0
    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'
                            })))
コード例 #10
0
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")
コード例 #11
0
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
コード例 #12
0
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()
コード例 #13
0
 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()
コード例 #14
0
    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
コード例 #15
0
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
コード例 #16
0
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
コード例 #17
0
    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")
コード例 #18
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)
コード例 #19
0
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)
コード例 #20
0
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}
コード例 #21
0
ファイル: views.py プロジェクト: harshitanand/Libmgmt
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})
コード例 #22
0
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('/')
コード例 #23
0
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)
コード例 #24
0
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")
コード例 #25
0
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)
コード例 #26
0
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('/')
コード例 #27
0
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
コード例 #28
0
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("/")
コード例 #29
0
    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)
コード例 #30
0
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)