def add_book_post(): if request.method == "POST": if not request.form['title'] or not request.form[ 'describe'] or not request.form['name'] or not request.form[ 'species']: flash('You have to enter all fields!') else: book = Book(request.form['title'], request.form['describe']) author = Authors(name=request.form.get("name")) category = Category(species=request.form.get("species")) db.session.add(book) db.session.add(author) db.session.add(category) # Pushing data to 'pivot' tables author.auth_book.append(book) category.cat_book.append(book) db.session.commit() flash('Successfully added') return render_template("add_book_post.html", book=book, author=author, category=category)
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 create_author(current_user): #current_user): data = request.get_json() new_authors = Authors(name=data['name'], country=data['country'], book=data['book'], booker_prize=True, user_id=current_user.id) db.session.add(new_authors) db.session.commit() return jsonify({'message': 'new author created'})
def scan_isbn(): is_admin = 0 name = "" if current_user.is_authenticated: is_admin = current_user.is_admin name = current_user.name if is_admin != 1: return redirect(url_for('index')) if is_admin != 1: return redirect(url_for('index')) if request.method == "POST": authors = request.form['authors'].replace(" ", "").split(",") current_class = request.form['current_class'] subject = request.form['subject'] if not Info_about_books.query.filter_by(isbn=request.form['isbn']).first(): if 12 > int(current_class) > 0: is_subject = Subjects.query.filter_by(name=subject).first() if not is_subject: db.session.add(Subjects(name=subject)) for author in authors: is_author = Authors.query.filter_by(name=author).first() if not is_author: db.session.add(Authors(name=author)) else: return render_template('scan_isbn.html', is_admin=is_admin, name=name, error="Введён некорректный класс") db.session.commit() append_book = Info_about_books(id_subject=Subjects.query.filter_by(name=subject).first().id_subject, num_class=current_class, isbn=request.form['isbn']) db.session.add(append_book) db.session.flush() for author in authors: db.session.add(Book_authors(id_author=Authors.query.filter_by(name=author).first().id_author, id_book=append_book.id_book)) else: return render_template('scan_isbn.html', is_admin=is_admin, name=name, error="Книга уже есть в базе") db.session.commit() return render_template('scan_isbn.html', is_admin=is_admin, name=name, error="")
def query_or_add(url, title, date, bias, authors, source_url): # otherartsinns=[] # otherartsbyauthor=[] articleurlexists = Articles.query.filter_by(url=url).first() articletitleexists = Articles.query.filter_by(title=title).first() # print(articleurlexists, articletitleexists) # try : if ((not articleurlexists) and (not articletitleexists)): print("haha2") article1 = Articles(title=title, date=date, url=url, bias=bias) db.session.add(article1) db.session.commit() for author in authors: print(author) print("haha3") authorexists = Authors.query.filter_by(name=author.lower()).first() if not authorexists: authorobj = Authors(name=author.lower()) db.session.add(authorobj) db.session.commit() print("haha4") authorwrites = Writes(author=author.lower(), article=url) print("haha1") db.session.add(authorwrites) db.session.commit() # otherobj=Writes.query.filter_by(author=author.lower()) # # print(otherobj.article) # if(otherobj): # for art in otherobj: # print("haha5") # otherartsbyauthor.append(art.article) # else: # otherartsbyauthor.append(url) # parsed_uri = urlparse(url) # result = '{uri.scheme}://{uri.netloc}/'.format(uri=parsed_uri) newssourcequery = NewsSource.query.filter_by( URL=source_url).first() if (not (newssourcequery)): # nsname=newssourcequery.name # print("haha6") print(source_url) nobj = newspaper.build(source_url) print(nobj) nsname = nobj.brand print("haha6") newsourceobj = NewsSource(name=nsname, URL=source_url) print("haha7") db.session.add(newsourceobj) db.session.commit() else: nsname = newssourcequery.name authorwritesforexists = Writes_For.query.filter_by( author=author.lower(), newssource=nsname).first() print("haha8") if not authorwritesforexists: authorwfobj = Writes_For(author=author.lower(), newssource=nsname) print("haha9") db.session.add(authorwfobj) db.session.commit() containsart = Contains.query.filter_by(article=url, newssource=nsname).first() print("haha10") if not containsart: containsartobj = Contains(article=url, newssource=nsname) print("haha11") db.session.add(containsartobj) db.session.commit()
def add_to_db(): newsourcesdd = pd.read_csv('app/newsourcedd.csv') newsources = pd.read_csv('app/newsource.csv') authors = pd.read_csv("app/authors.csv") articles = pd.read_csv("app/articles.csv") writes = pd.read_csv('app/writes.csv') wf = pd.read_csv("app/writes_for.csv") contains = pd.read_csv("app/contains.csv") for i in range(len(newsourcesdd)): name = newsourcesdd['Name'].iloc[i] url = newsourcesdd['URL'].iloc[i] bias = newsourcesdd['Bias'].iloc[i] newdd = NewsSourceDropDown(name=name, URL=url, bias=bias) db.session.add(newdd) db.session.commit() for i in range(len(newsources)): name = newsources['Name'].iloc[i] url = newsources['News_Source'].iloc[i] bias = newsources['Bias'].iloc[i] new = NewsSource(name=name, URL=url, bias=bias) db.session.add(new) db.session.commit() for i in range(len(authors)): name1 = authors['Name'].iloc[i] name = (name1[:100]) if len(name1) > 100 else name1 author = Authors(name=name) db.session.add(author) db.session.commit() for i in range(len(articles)): title1 = articles['title'].iloc[i] title = (title1[:150]) if len(title1) > 150 else title1 date = articles[' date'].iloc[i] url = articles[' url'].iloc[i] bias = articles['Bias'].iloc[i] article = Articles(title=title, date=date, url=url, bias=bias) db.session.add(article) db.session.commit() for i in range(len(writes)): url = writes['ArticleURL'].iloc[i] name1 = writes['Author'].iloc[i] name = (name1[:100]) if len(name1) > 100 else name1 w = Writes(author=name, article=url) db.session.add(w) db.session.commit() for i in range(len(wf)): name1 = wf['Author'].iloc[i] aname = (name1[:100]) if len(name1) > 100 else name1 ns = wf['News Source'].iloc[i] w = Writes_For(author=aname, newssource=ns) db.session.add(w) db.session.commit() for i in range(len(contains)): name = contains['Name'].iloc[i] url = contains[' url'].iloc[i] c = Contains(article=url, newssource=name) db.session.add(c) db.session.commit()
# -*- 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()