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 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)
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')
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')
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
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)
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)
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)
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()
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
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": "******" }
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)
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)
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
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')
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) # 渲染模板
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)
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())
# -*- 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()
def test_get_books(self): self.new_book.save_book() book=Books.get_books() self.assertTrue(book is not None)
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()
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)