Example #1
0
    def setUp(self):
        self.new_user= User (
                              username="******",
                              full_name="John Doe",
                              email="*****@*****.**",
                              pass_secure="testing12"
                               )
        self.new_user.save_user()

        self.new_book=Books( title="tester", author="writer", description="big book", user_id=self.new_user.id)
        self.new_book.save_book()
Example #2
0
def send():
    form = SubmitBookForm()

    if form.validate_on_submit():
        title = Books(title=form.title.data,
                      author=form.author.data,
                      pages=form.pages.data,
                      cost=form.cost.data,
                      description=form.description.data,
                      status=True,
                      sender=current_user)
        db.session.add(title)
        db.session.commit()

        title2 = History(title=form.title.data,
                         author=form.author.data,
                         pages=form.pages.data,
                         cost=form.cost.data,
                         type=True,
                         exchanger=current_user)
        db.session.add(title2)
        db.session.commit()

        flash("Your book was accepted, drop the book off at Aula 1p")
        return redirect(url_for('send'))
    return render_template('send.html',
                           title='Submit your old book',
                           form=form)
Example #3
0
def new_book():
    form = BookForm()
    if form.validate_on_submit():

        publisher = db.session.query(Publishers).filter(Publishers.publishes_name==form.publisher.data).first()
        if publisher:#якщо таке видавництво є в базі даних
            publisher_id = publisher.publishers_id
        else:#якщо його немає
            publisher_id = db.session.query(Publishers).order_by(Publishers.publishers_id.desc()).first().publishers_id + 1
            publisher = Publishers(publishers_id=publisher_id, publishes_name=form.publisher.data)
            db.session.add(publisher)
            # db.session.commit()


        category = db.session.query(Categories).filter(Categories.category_name==form.category.data).first()
        if category:
            category_id = category.category_id
        else:
            category_id = db.session.query(Categories).order_by(Categories.category_id.desc()).first().category_id + 1
            category = Categories(category_id=category_id, category_name=form.category.data)
            db.session.add(category)
            # db.session.commit()
        

        author_name = db.session.query(Authors).filter(Authors.first_name==form.name_author.data).all()#отримуємо всіх авторів з таким ім'ям
        author_surname = db.session.query(Authors).filter(Authors.second_name==form.surname_author.data).all()#отримуємо всіх авторів з таким прізвищем
        author = list(set(author_name).intersection(author_surname))#отримуємо автора з таким ім'ям і прізвищем

        if author:
            author_id = author[0].author_id
        else:
            author_id = db.session.query(Authors).order_by(Authors.author_id.desc()).first().author_id + 1
            author = Authors(author_id=author_id, first_name=form.name_author.data, second_name=form.surname_author.data)
            db.session.add(author)
            # db.session.commit()

        # date_add = form.data_added.data.split('.')



        book_id = db.session.query(Books).order_by(Books.book_id.desc()).first().book_id + 1
        book = Books(book_id=book_id, book_name=form.name_book.data, description=form.description.data, page=form.page.data,
         year=form.year.data, publisher_id=publisher_id, categories_id=category_id)





        db.session.add(book)
        # db.session.add(user_book)

        db.session.commit()

        ins = autor_has_books.insert().values(book_id=book_id, author_id=author_id)
        db.engine.execute(ins)
        # flash('Your post has been created!', 'success')
        return redirect(url_for('home'))
    return render_template('new_book.html', title='New Book',
                           form=form, legend='New Book')
Example #4
0
 def test_books_model(self):
     """Test number of books."""
     BOOK = list()
     BOOK.append(
         Books(1, 'Data Science', 'Rpeng', '5th',
               'Intro to data science with python'))
     self.assertEqual(len(BOOK), 1)
     self.assertEqual(BOOK[0].title, 'Data Science')
Example #5
0
def add_new_book():
    json_data = json.loads(request.data.decode())
    answer = 'Книга была успешно добавлена на склад'
    book = Books()
    book.Name = json_data['name']
    book.Genre = json_data['gengre']
    book.Price = json_data['price']
    book.Count = json_data['count']
    book.Magazine = json_data['magazine']
    book.isAvailable = json_data['isAvailable']
    db.session.add(book)
    db.session.commit()
    return answer, 200
Example #6
0
def add_book(request):
    if request.method == "POST":
        id = request.POST['book_id']
        name = request.POST['book_name']
        image_path = request.POST['book_path']
        author = request.POST['author']
        original = request.POST['original']
        price = request.POST['book_price']
        book = Books(id=id,
                     name=name,
                     image=image_path,
                     author=author,
                     original=original,
                     price=price)
        print(id, name, image_path, author, original, price)
        print(book.name, book.id, book.image, book.author)
        book.save()
        return render(request, "html/manage.html")
    else:
        return page_error(request)
def add_book():
    form = BookForm()
    if form.validate_on_submit():
        data = Books(title=form.book_title.data, author=form.book_author.data, isbn=form.isbn_code.data,
                     publisher=form.publisher.data, publication_date=form.publication_date.data,
                     pages=form.pages.data, language=form.language.data, total_qty=form.total_quantity.data)

        db.session.add(data)
        db.session.commit()
        flash("Book Added Success fully")

    return render_template("add_book.html", form=form)
Example #8
0
class TestUsers(unittest.TestCase):

    def setUp(self):
        self.new_user= User (
                              username="******",
                              full_name="John Doe",
                              email="*****@*****.**",
                              pass_secure="testing12"
                               )
        self.new_user.save_user()

        self.new_book=Books( title="tester", author="writer", description="big book", user_id=self.new_user.id)
        self.new_book.save_book()

    def test_instances(self):

        self.assertTrue(isinstance(self.new_user, User))
        self.assertTrue(isinstance(self.new_book, Books))

    def test_user_issaved(self):
        self.new_user.save_user()
        self.assertTrue(len(User.query.all())> 0)

    def test_books_issaved(self):
        self.new_book.save_book()
        self.assertTrue(len(Books.query.all())> 0)

    def test_get_books(self):
        self.new_book.save_book()
        book=Books.get_books()
        self.assertTrue(book is not None)
Example #9
0
    def test_book_model(self):
        """
        Test number of records in Book table
        """

        # create test book
        books = Books(name="IT")

        # save book to database
        db.session.add(books)
        db.session.commit()

        self.assertEqual(Books.query.count(), 1)
Example #10
0
def async_new_book_add(title,isbn,description,pages,author,category,language,num_copies):
    new_book = Books()
    new_book.title = title.strip()
    new_book.isbn = isbn.strip()
    new_book.description = description.strip()
    new_book.pages = pages
    authors = [author.strip() for author in author.split(",")]
    categories = [category.strip() for category in category.split(",")]
    new_book.author = authors
    new_book.category = categories
    new_book.language = language.strip()
    new_book.num_copies = num_copies

    db.session.add(new_book)
    db.session.commit()

    for _ in range(int(new_book.num_copies)):
        new_copy = BookCopies()
        new_copy.title = new_book.title
        new_copy.book_id = new_book.id
        new_book.copies.append(new_copy)
        db.session.add(new_copy)
        db.session.commit()
Example #11
0
def test_book():
    """
    GIVEN a Books model
    WHEN a new Book is created
    THEN check the goodreads_book_id  and average_rating
    """
    book = Books(
        goodreads_book_id=17332218,
        authors='Brandon Sanderson',
        isbn='765326361',
        title='Words of Radiance',
        average_rating=4.77,
        image_url='https://images.gr-assets.com/books/1391535251m/17332218.jpg',
        ratings_count=73572)
    assert book.goodreads_book_id == 17332218
    assert book.average_rating == 4.77
Example #12
0
    def setUp(self):
        """First setup endpoint tests."""
        config_name = 'testing'
        app = create_app(config_name)
        self.app = app
        self.client = self.app.test_client()
        self.app_context = self.app.app_context()
        self.app_context.push()

        book_one = Books(3, 'Data Sience for Dummies', 'Rpeng', '5th',
                         'Intro to data science with python')

        self.book_one_update = {
            "author": "Justmesam",
            "title": "My journey to Andela"
        }

        self.book = book_one.serialize

        # User sample details to register
        user_one = Users(10, "Jack", "*****@*****.**", "secretpass")
        self.user = user_one.serialize

        # User details to login
        self.user_login_details = {
            "email": "*****@*****.**",
            "password": "******"
        }

        # user to test borrow book endpoint
        self.user_to_borrow = {
            "email": "*****@*****.**",
            "password": "******"
        }
        self.user_to_borrow_email = {"email": "*****@*****.**"}
        self.user_to_borrow_email_one = {"email": "*****@*****.**"}

        # User new password
        self.user_one_reset = {
            "email": "*****@*****.**",
            "password": "******"
        }

        self.user_whitespace_reset = {
            "email": "*****@*****.**",
            "password": "******"
        }
Example #13
0
def upload(id=False):
    if g.user.is_admin():
        pass
    else:
        flash("不是管理员,不能进入该页面")
        return redirect(url_for('goods'))
    form = UploadForm()
    if form.validate_on_submit():
        book = Books(name=form.name.data,
                     introduction=form.introduction.data,
                     price=form.price.data,
                     photo=form.photo.data)
        db.session.add(book)
        db.session.commit()
        flash('上传成功')
        return redirect(url_for('upload'))
    return render_template('upload.html', title="上传", form=form)
Example #14
0
def add_new_book():
    form = AddNewBookForm()
    if request.method == "POST":
        if form.validate_on_submit():
            temp_dict = request.form.to_dict()
            book = Books(title = temp_dict['title'],
                         author = temp_dict['author'],
                         genre_id = temp_dict['genre'],
                         description = temp_dict['description'],
                         published = datetime(int(temp_dict['published']), 1, 1),
                         publisher = temp_dict['publisher'],
                         cover_url = temp_dict['cover']
                         )
            db.session.add(book)
            db.session.commit()
            return render_template('upload_succesful.html')

    return render_template('add_new_book.html', form = form)
Example #15
0
def add_book(list_id):
    cur_list = Lists.query.filter_by(id=list_id).first()
    verify_current_user(cur_list.user_id)

    book = Books.query.filter_by(isbn=request.json.get('isbn')).first()
    if not book:
        book = Books(isbn=request.json.get('isbn'),
                     title=request.json.get('title'),
                     author=request.json.get('author'),
                     category=request.json.get('category'),
                     coverurl=request.json.get('coverurl'),
                     summary=request.json.get('summary'))
        db.session.add(book)
        db.session.commit()
    relation = Relationships(list_id=list_id,
                             book_id=book.id)
    db.session.add(relation)
    db.session.commit()
    return jsonify({'book_id': book.id}), 201
Example #16
0
def create_book():
    if request.method == 'POST':
        data = request.get_json()
        book = Books(book_name=data['book_name'],
                     author=data['author'],
                     rating=data['rating'],
                     date=datetime.strptime(data['date'], '%Y-%m-%d %H:%M:%S'))
        db.session.add(book)
        db.session.flush()
        db.session.commit()
        data = {
            "id": book.id,
            "book_name": book.book_name,
            "author": book.author,
            "rating": book.rating,
            "date": book.date.strftime('%Y-%m-%d %H:%M:%S')
        }
        return Response(response=json.dumps(data, ensure_ascii=False),
                        headers={'Location': f'/read-users/{book.id}'},
                        status=201,
                        mimetype='application/json')
Example #17
0
def books_add():
    """
    添加书籍页面
    """
    form = BooksForm()  # 实例化form表单
    form.category_id.choices = [(v.id, v.name) for v in Category.query.all()]  # 为category_id添加属性
    if form.validate_on_submit():
        data = form.data
        # 判断书籍是否存在
        books_count = Books.query.filter_by(title=data["title"]).count()
        # 判断是否有重复数据。
        if books_count == 1:
            flash("书籍已经存在!", "err")
            return redirect(url_for('admin.books_add'))

        file_logo = secure_filename(form.logo.data.filename)  # 确保文件名
        if not os.path.exists(current_app.config["UP_DIR"]):
            # 创建一个多级目录
            os.makedirs(current_app.config["UP_DIR"])  # 创建文件夹
            os.chmod(current_app.config["UP_DIR"], "rw")  # 设置权限
        logo = change_filename(file_logo)  # 更改名称
        form.logo.data.save(current_app.config["UP_DIR"] + logo)  # 保存文件
        # 为books类属性赋值
        books = Books(
            title=data["title"],
            logo=logo,
            star=int(data["star"]),
            author=data["author"],
            is_hot=int(data["is_hot"]),
            is_recommended=int(data["is_recommended"]),
            category_id=data["category_id"],
            introduction=data["introduction"],
            content=data["content"],
        )
        db.session.add(books)  # 添加数据
        db.session.commit()  # 提交数据
        addOplog("添加书籍" + data["title"])  # 添加日志
        flash("添加书籍成功!", "ok")  # 使用flash保存添加成功信息
        return redirect(url_for('admin.books_add'))  # 页面跳转
    return render_template("admin/books_add.html", form=form)  # 渲染模板
Example #18
0
File: views.py Project: sc17zm/cw2
def addbook(username):
    form = AddBookForm()

    if request.method == 'POST':
        x = Books()
        x.bookname = form.bookname.data
        x.bookgenre = form.bookgenre.data
        x.author = form.author.data
        x.user_name = username
        db.session.add(x)
        db.session.commit()
        flash("Book Added Succesfully")

    return render_template("addbook.html",
                           title='Read a Book',
                           form=form,
                           username=username)
Example #19
0
    def post(self):
        data_dict = request.json  # 获取发送的 json 数据
        name = data_dict.get('name')
        category = data_dict.get('category')
        price = data_dict.get('price')
        user_id = g.user.id

        # 将用户信息存入数据库
        book = Books()
        book.name = name
        book.category = category
        book.price = price
        # 将用户 id 直接赋值给 user_id
        book.user_id = user_id

        try:
            db.session.add(book)
            db.session.commit()
        except Exception as e:
            return jsonify(code=400, msg='数据跟新失败')

        return jsonify(code=200, msg='添加书籍成功', data=book.to_dict())
Example #20
0
# -*- coding: utf-8 -*-
import os
from app import db
from app.models import Books, Authors, Users

data = u'Федор Достоевский — Преступление и наказание, Лев Толстой — Война и мир, Александр Пушкин — Евгений Онегин, Михаил Булгаков — Собачье сердце, Артур Конан Дойль — Приключения Шерлока Холмса, Илья Ильф — Двенадцать стульев, Михаил Лермонтов — Герой нашего времени, Федор Достоевский — Идиот, Антуан де Сент-Экзюпери — Маленький принц, Антон Чехов — Рассказы, Лев Толстой — Анна Каренина, Федор Достоевский — Братья Карамазовы, Эрих Мария Ремарк — Три товарища, Александр Дюма — Граф Монте-Кристо, Николай Гоголь — Мёртвые души, Александр Грибоедов — Горе от ума, Маргарет Митчелл — Унесённые ветром, Оскар Уайльд — Портрет Дориана Грея, Уильям Шекспир — Ромео и Джульетта, Иван Тургенев — Отцы и дети, Николай Гоголь — Вечера на хуторе близ Диканьки, Федор Достоевский — Бесы, Иван Гончаров — Обломов, Александр Пушкин — Капитанская дочка, Михаил Шолохов — Тихий Дон, О.Генри — Рассказы, Александр Дюма — Три мушкетера, Джейн Остин — Гордость и предубеждение, Джордж Оруэлл — 1984, Иоганн Вольфганг фон Гёте — Фауст, Марк Твен — Приключения Тома Сойера, Антон Чехов — Палата № 6, Эрнест Хемингуэй — Старик и море, Уильям Шекспир — Гамлет, Виктор Гюго — Собор Парижской Богоматери, Артур Конан Дойль — Собака Баскервилей, Эрих Мария Ремарк — Триумфальная арка, Николай Гоголь — Ревизор, Михаил Булгаков — Белая гвардия, Рэй Брэдбери — 451 градус по Фаренгейту, Николай Гоголь — Тарас Бульба, Виктор Гюго — Отверженные, Джек Лондон — Белый Клык, Даниель Дефо — Робинзон Крузо, Евгений Петров — Золотой теленок, Борис Васильев — А зори здесь тихие, Жюль Верн — Таинственный остров, Роберт Льюис Стивенсон — Остров сокровищ, Вениамин Каверин — Два капитана, Александр Пушкин — Повести Белкина, Эрих Мария Ремарк — На западном фронте без перемен, Габриэль Гарсиа Маркес — Сто лет одиночества, Ганс Христиан Андерсен — Сказки, Александр Волков — Волшебник Изумрудного города, Шарлотта Бронте — Джейн Эйр, Александр Грин — Алые паруса, Николай Носов — Приключения Незнайки и его друзей, Кен Кизи — Пролетая над гнездом кукушки, Аркадий и Борис Стругацкие — Пикник на обочине, Станислав Лем — Солярис, Льюис Кэрролл — Алиса в стране чудес, Джон Толкиен — Властелин колец, Джоан Роулинг — Серия книг о Гарри Поттере, Джек Лондон — Мартин Иден, Джером Д. Сэлинджер — Над пропастью во ржи, Жюль Верн — Дети капитана Гранта, Леонид Филатов — Про Федота-стрельца удалого молодца, Александр Беляев — Человек-амфибия, Марк Твен — Приключения Гекльберри Финна, Ярослав Гашек — Похождения бравого солдата Швейка во время мировой войны, Астрид Линдгрен — Малыш и Карлсон который живёт на крыше, Федор Достоевский — Униженные и оскорблённые, Алексей Толстой — Пётр Первый, Антон Чехов — Вишневый сад, Александр Пушкин — Сказка о рыбаке и рыбке, Аркадий и Борис Стругацкие — Трудно быть богом, Эрнест Хемингуэй — По ком звонит колокол, Федор Достоевский — Игрок, Аркадий и Борис Стругацкие — Понедельник начинается в субботу, Лев Толстой — Детство. Отрочество. Юность., Теодор Драйзер — Американская трагедия, Марк Твен — Принц и нищий, Борис Пастернак — Доктор Живаго, Михаил Шолохов — Судьба человека, Борис Акунин — Приключения Эраста Фандорина, Фрэнсис Скотт Фицджеральд — Великий Гэтсби, Алан Александр Милн — Винни-Пух, Мигель Сервантес — Хитроумный идальго Дон Кихот Ламанчский, Эрих Мария Ремарк — Жизнь взаймы, Уильям Шекспир — Король Лир, Стендаль — Красное и чёрное, Жюль Верн — Пятнадцатилетний капитан, Иван Бунин — Тёмные аллеи, Александр Куприн — Гранатовый браслет, Эдгар По — Рассказы, Патрик Зюскинд — Парфюмер. История одного убийцы, Эмили Бронте — Грозовой перевал, Колин Маккалоу — Поющие в терновнике, Лев Толстой — Кавказский пленник'
data = [data.split(u' — ') for data in data.split(u', ')]

if not os.path.exists('test-case.db'):
    db.create_all()
    for row in data:
        book = Books(row[1], [Authors(row[0])])
        db.session.add(book)

    user = Users(username='******',
                 password='******')
    db.session.add(user)
    db.session.commit()
Example #21
0
 def test_get_books(self):
     self.new_book.save_book()
     book=Books.get_books()
     self.assertTrue(book is not None)
Example #22
0
from app import db
from app.models import User, Books

# user = User(name='123', password='******')
# user1 = User(name='666', password='******')
# db.session.add(user)
# db.session.add(user1)


book = Books(name='高原小城',
               introduction='高原小城',
               price='2',
               photo= 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=38969419,4246819950&fm=23&gp=0.jpg',
               sales=8)
book1 = Books(name='生平',
               introduction='生平',
               price='1',
                photo='https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1952262159,1630835076&fm=23&gp=0.jpg',
                sales=5)

db.session.add(book)
db.session.add(book1)

db.session.commit()
Example #23
0
from flask_restplus import Resource, Namespace, reqparse, fields
from app.models import Users, Books


user_api = Namespace('admin', __name__)
post_book = user_api.model('Post a book', {'title': fields.String, 'author': fields.String,
                                           'genre': fields.String, 'items': fields.Integer})
users = Users()
books = Books()


class UserList(Resource):
    """Contains GET and POST method"""
    @staticmethod
    def get():
        response = users.get_users()
        return response


class User(Resource):
    """Get a user"""
    @staticmethod
    def get(user_id):
        response = users.get_a_user(user_id=user_id)
        return response


class BookList(Resource):
    """Admin adding a book"""
    @staticmethod
    @user_api.expect(post_book)