def add_book(): # 添加书籍 book1 = Book() book1.title = '深入理解计算机系统' book1.author = 'Randal E.Bryant' book1.summary = ''' 从程序员的视角,看计算机系统!\n 本书适用于那些想要写出更快、更可靠程序的程序员。 通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。 粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。 而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。 它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。\n 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。 ''' book1.image = 'https://img3.doubanio.com/lpic/s1470003.jpg' db.session.add(book1) book2 = Book() book2.title = 'C程序设计语言' book2.author = '(美)Brian W. Kernighan' book2.summary = ''' 在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。 本书原著即为C语言的设计者之一Dennis M.Ritchie和著名计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。 我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。 原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。 人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。\n 原著第2版根据1987年制定的ANSIC标准做了适当的修订.引入了最新的语言形式,并增加了新的示例,通过简洁的描述、典型的示例,作者全面、系统、准确地讲述了C语言的各个特性以及程序设计的基本方法。 对于计算机从业人员来说,《C程序设计语言》是一本必读的程序设计语 言方面的参考书。 ''' book2.image = 'https://img3.doubanio.com/lpic/s1106934.jpg' db.session.add(book2)
def __save(data): """ 保存到数据库 :param data: :return: """ if 'books' not in data.keys(): data['books'] = [data] if data['books']: for item in data['books']: # 已存在的不需要插入 count = Book.query.filter_by(isbn=item['isbn']).count() if count == 0: book = Book() book.title = item['title'] book.author = '、'.join(item['author']) book.binding = item['binding'] book.publisher = item['publisher'] book.price = item['price'] book.pages = item['pages'] book.pubdate = item['pubdate'] book.isbn = item['isbn'] book.summary = item['summary'] book.image = item['image'] db.session.add(book) db.session.commit()
def create_book(): form = CreateOrUpdateBookForm().validate_for_api() # 校验参数 book = Book.query.filter_by(title=form.title.data).first() # 避免同名图书 if book is not None: raise ParameterException(msg='图书已存在') # 新增图书 with db.auto_commit(): new_book = Book() new_book.title = form.title.data new_book.author = form.author.data new_book.summary = form.summary.data new_book.image = form.image.data db.session.add(new_book) return Success(msg='新建图书成功')
def dataPersistence(self): """持久化数据""" for single in self.books: if not Book.query.filter_by(isbn=single['isbn']).count(): with db.auto_commit(): book = Book() book.author = json.dumps(single['author']) book.category = single['category'] book.image = single['image'] book.isbn = single['isbn'] book.pages = single['pages'] book.price = single['price'] book.pubdate = single['pubdate'] book.publisher = single['publisher'] book.subtitle = single['subtitle'] book.summary = single['summary'] book.title = single['title'] book.translator = json.dumps(single['translator']) db.session.add(book)
def save_book(books): for b in books: try: book = Book() book.title = b.title book.author = b.author book.binding = b.binding book.publisher = b.publisher book.image = b.image book.price = b.price book.isbn = b.isbn book.pubdate = b.pubdate book.summary = b.summary book.pages = b.pages db.session.add(book) db.session.commit() except IntegrityError as e: db.session.rollback() current_app.logger.exception('%r' % e) raise e
def book_uplode(): form = LengForm(request.form) book = Book() uid = current_user.id if request.method == 'POST' and form.validate(): image = request.files['image'] fname = image.filename UPLOAD_FOLDER = current_app.config['UPLOAD_FOLDER'] ALLOWED_EXTENSIONS = ['png', 'jpg', 'jpeg', 'jpg'] flag = '.' in fname and fname.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS if not flag: flash('文件类型错误,请检查上传的图片类型,仅限于png、PNG、jpg、JPG') return redirect(url_for('views.book_uplode')) if Book.query.filter_by(isbn=book.isbn).first(): flash("已经存在这本书了,快去搜索栏搜索吧") else: with db.auto_commit(): image.save('{}{}'.format(UPLOAD_FOLDER, fname)) book.image = '/static/uplode/{}'.format(fname) book.title = form.title.data book.author = form.author.data book.isbn = form.isbn.data book.publisher = form.publisher.data book.summary = form.summary.data db.session.add(book) if Gift.query.filter_by(isbn=book.isbn, uid=uid, launched=False).first(): flash('这本书已经添加至你的赠送清单或已存在于你的心愿清单,请不要重复添加') else: with db.auto_commit(): gift = Gift() gift.isbn = form.isbn.data gift.uid = uid current_user.beans += current_app.config[ 'BEANS_UPLOAD_ONE_BOOK'] db.session.add(gift) return redirect(url_for('views.book_uplode')) return render_template('book_uplode.html', form=form)
from app.models.base import db from app.models.users import User from app.models.book import Book app = create_app() # with app.app_context(): # with db.auto_commit(): # # 创建一个超级管理员 # user = User() # user.nickname = 'Super' # user.password = '******' # user.email = '*****@*****.**' # user.auth = 2 # db.session.add(user) with app.app_context(): with db.auto_commit(): book = Book() book.id = 2 book.title = "flask进阶" book.author = "SHI" book.binding = "32开" book.publisher = "北京xx大学出版社" book.price = 180 book.pages = 900 book.pubdate = "2018-12-31" book.isbn = "2345678" book.summary = "关于flask的进阶知识" book.image = "http://baidu.image.com" db.session.add(book)
""" :copyright: © 2019 by the Lin team. :license: MIT, see LICENSE for more details. """ from app.app import create_app from app.models.book import Book from lin.db import db app = create_app() with app.app_context(): with db.auto_commit(): # 添加书籍 book1 = Book() book1.title = '深入理解计算机系统' book1.author = 'Randal E.Bryant' book1.summary = ''' 从程序员的视角,看计算机系统!\n 本书适用于那些想要写出更快、更可靠程序的程序员。 通过掌握程序是如何映射到系统上,以及程序是如何执行的,读者能够更好的理解程序的行为为什么是这样的,以及效率低下是如何造成的。 粗略来看,计算机系统包括处理器和存储器硬件、编译器、操作系统和网络互连环境。 而通过程序员的视角,读者可以清晰地明白学习计算机系统的内部工作原理会对他们今后作为计算机科学研究者和工程师的工作有进一步的帮助。 它还有助于为进一步学习计算机体系结构、操作系统、编译器和网络互连做好准备。\n 本书的主要论题包括:数据表示、C程序的机器级表示、处理器结构,程序优化、存储器层次结构、链接、异常控制流、虚拟存储器和存储器管理、系统级I/O、网络编程和并发编程。书中所覆盖的内容主要是这些方面是如何影响应用和系统程序员的。 ''' book1.image = 'https://img3.doubanio.com/lpic/s1470003.jpg' db.session.add(book1) book2 = Book() book2.title = 'C程序设计语言' book2.author = '(美)Brian W. Kernighan'