def book_view(request): if request.method == 'GET': form = BookForm() else: form = BookForm(request.POST) """ WARING: this line will technically work, but is horribly sub-optimal. djangoperformance.com will make you aware of that sub-optimality by telling you how many queries are being generated for each view, and what those queries are """ # books = Book.objects.all() """ this is a simple solution to reduce the number of queries issued to the database. this should not be considered a recipe for optimizing all applications, and is only used here to illustrate expected use case of djangoperformance.com (you may, for example, want to use a custom model manager if you're doing something complicated in your application) """ books = Book.objects.select_related('publisher').all().prefetch_related('authors') if not form.is_valid() or request.method == 'GET': return render_to_response('books.html', {'form': form, 'object_list': books}, context_instance=RequestContext(request)) else: newitem = form.save() messages.success(request, "Book %s was added" % newitem) return HttpResponseRedirect(request.build_absolute_uri())
def nominations(request, poll_id): poll = Poll.objects.get(id=poll_id) books = Book.objects.filter(poll=poll_id) disabled = '' votes = {} for book in books: if book.user == request.user: disabled = 'disabled="disabled"' if request.method == "POST": form = BookForm(request.POST) if form.is_valid(): title = form.cleaned_data['title'] author = form.cleaned_data['author'] description = form.cleaned_data['description'] book = Book(title=title, author=author, description=description, poll=poll, user=request.user) book.save() return redirect('/polls/nominations/' + str(poll_id)) else: form = BookForm() context = RequestContext(request, { 'poll': poll, 'books': books, 'form': form, 'disabled': disabled, }) return render(request, 'polls/nominations.html', context)
def add(request): """View to add a book, we will check if the seller is active first""" try: seller = Seller.objects.get(user=request.user.id) except Seller.DoesNotExist: seller = None if seller and seller.account_status == 'AC': can_add_book = True seller_id = seller.id else: can_add_book = False seller_id = None if request.method == 'POST': # If the form has been submitted... form = BookForm(request.POST, request.FILES) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data # ... form.save() return redirect('/accounts/books/') # Redirect after POST else: form = BookForm(initial={'seller': seller_id}) # An unbound form return render_to_response('books/book_form.html', { 'form': form, 'can_add_book': can_add_book, 'seller': seller }, context_instance=RequestContext(request))
def create_book(): if request.method == 'GET': form = BookForm() else: # POST form = BookForm(request.form) if form.validate(): book = Book('') form.populate_obj(book) db.session.add(book) db.session.commit() return redirect(url_for('edit_books')) return render_template('books_edit_page.html', form=form)
def add_book(request): if request.method == 'POST': form = BookForm(request.POST, request.FILES) if form.is_valid(): form.save() return HttpResponseRedirect('/books/all/') else: form = BookForm() args = {} args.update(csrf(request)) args['form'] = form return render(request, 'books/add_book.html', args)
def edit_book(id): form = BookForm() book = data_services.get_book_by_id(id) if request.method == 'GET': authors = "" for author in book.author: authors = author + ", " form = BookForm(obj=book) form.author.data = authors subscribers = data_services.get_all_subscriber() form.subscriber.choices = [(subscriber.id, subscriber.email) for subscriber in subscribers] form.subscriber.process_data(subscribers[0].id) publishers = data_services.get_all_publishers() form.publisher.choices = [(publisher.id, publisher.name) for publisher in publishers] form.publisher.process_data(book.publisher.id) return render_template('edit_book.html', form=form, status='edit') elif request.method == 'POST': if form.update.data: if form.validate_on_submit(): authors = [] for a in form.author.data.split(","): if a != "" and a != " ": authors.append(a) publisher = data_services.get_publisher(form.publisher.data) data_services.update_book(bk=book, title=form.title.data, author=form.author.data, pages=form.pages.data, publish_date=form.publish_date.data, publisher=publisher) flash('Book created successfully', 'success') else: for k, v in form.errors.items(): flash(v[0], 'danger') return render_template('edit_book.html', form=form, status='edit') elif form.delete.data: data_services.delete_book(book) flash('Book deleted successfully', 'success') elif form.borrow.data: subscriber = data_services.get_subscriber_by_id( form.subscriber.data) data_services.book_add_subscriber(bk=book, subscriber=subscriber, start=form.start.data, end=form.end.data) flash('Book borrow created successfully', 'success') return redirect('/book/list')
def create_listing(): form = BookForm() if form.validate_on_submit(): new_book = Book(isbn=int(form.isbn.data), owner=current_user.user_id) session = Session() session.add(new_book) session.commit() new_transaction = Transaction( seller=current_user.user_id, book=new_book.book_id, address_from=form.streetNameNum.data + " " + form.city.data + ", " + form.state.data + " " + form.zipcode.data) session.add(new_transaction) user = session.query(User).filter( User.user_id == current_user.user_id).first() user.credits += 1 user.totalcredit += 1 session.commit() return redirect( url_for( "index", msg= "The Magic Bookshelf📚 applauds your generosity! You have earned [✨Arcane Dust x1]" )) # Very important, make sure to initialize the field of the OWNER's # associated user's ID after the post request. To be handled later return render_template('create_listing.html', form=form)
def post(self, request): form = BookForm(request.POST) if form.is_valid(): # 验证表单数据 print(form.cleaned_data) # 获取验证后的表单数据 return HttpResponse("OK") else: return render(request, 'book.html', {'form': form})
def check_books(request): form = BookForm(request.POST, request.FILES) # A form bound to the POST data if not form.is_valid(): # All validation rules pass return render(request, "index.html", {"form": form}) # Process the data in form.cleaned_data -- but what about the location data? book_file = form.cleaned_data['book_file'] google_url = form.cleaned_data['google_url'] lib_location = form.cleaned_data['lib_location'] if book_file: booklist = process_book_file( book_file) # returns list of title and author elif google_url: print google_url booklist = read_spreadsheet(google_url) # print "%r"%lib_location gr_rating = 0 checked_in_books = [] for book_title, author in booklist: library_base_url = create_library_url(book_title, lib_location) details = get_details(book_title, author, lib_location, library_base_url) if details: checked_in_books.append(details) print "processed!" # print booklist sorry_msg = """ Sorry, no amount of fairy dust can check in any of these books for you. Check back again in a few days. """ return render(request, 'booklist.html', {'booklist': checked_in_books})
def bookform(): form = BookForm() if form.validate_on_submit(): conn = sqlite3.connect('bookdata') cur = conn.cursor() all_books = cur.execute('SELECT * FROM BooksTable;').fetchall() id = str(uuid.uuid4()) fileName = 'bookPhoto_' + str(id) book_dict = { 'Author': form.author.data, 'Title': form.title.data, 'Rating': int(form.rating.data), 'Description': form.description.data, 'FileName': fileName, 'ID': id } form.photo.data.save("static/userImages/" + fileName + ".png") cur.execute("INSERT INTO BooksTable VALUES (?,?,?,?,?,?)", [ book_dict["ID"], book_dict["Title"], book_dict["Author"], book_dict["Rating"], book_dict["FileName"], book_dict["Description"] ]) conn.commit() conn.close() return redirect('/index') return render_template('bookform.html', form=form)
def addbook(): if current_user.status == 1: bookform = BookForm() if request.method == "POST": isbn = request.form.get('isbn') name = request.form.get('name') price = request.form.get('price') author = request.form.get('author') book = Book(isbn=isbn, price=price, name=name, author=author, num=1) if bookform.validate_on_submit(): try: db.session.add(book) db.session.commit() flash('添加图书成功') except Exception as e: flash('添加书籍失败') return redirect(url_for('showallbooks')) return render_template('addbook.html', bookform=bookform) else: return ' permission denied'
def index(): form = BookForm() if form.validate_on_submit(): results = models.Book.select().where( models.Book.ISBN_13 == form.ISBN_13.data.strip() or models.Book.ISBN_10 == form.ISBN_10.data.strip()).limit(1) if len(results) > 0: book = results[0] else: book = None if book == None: models.Book.create(image=form.image.data.strip(), title=form.title.data.strip(), author=form.author.data.strip(), ISBN_13=form.ISBN_13.data.strip(), ISBN_10=form.ISBN_10.data.strip(), date_published=form.date_published.data.strip(), description=form.description.data.strip(), total_pages=form.total_pages.data) flash("Added new book, titled: {}".format(form.title.data), "alert alert-success") book = models.Book.get( models.Book.ISBN_13 == form.ISBN_13.data.strip() or models.Book.ISBN_10 == form.ISBN_10.data.strip()) return redirect("/setgoal/{}".format(book.id)) return render_template("add_book.html", title="Add Form", form=form)
def addbook(): form = BookForm() name = str(form.name.data) author = str(form.author.data) ISBN = form.ISBN.data genre = str(form.genre.data) if request.method == "POST": con = sqlite3.connect("Database/db.sqlite3") con.row_factory = sqlite3.Row cur = con.cursor() cur.execute("SELECT * FROM currentsession") tempvar = cur.fetchone() username = tempvar["username"] cur.execute("INSERT INTO books VALUES(?,?,?,?,?,?,?)", [username, name, author, ISBN, "live", "", genre]) cur.commit() cur.execute("SELECT * FROM users WHERE username=? and password=?", [form.username.data, form.password.data]) pas = cur.fetchall() cur.execute("SELECT * FROM books WHERE username=?", [form.username.data]) books = cur.fetchall() mylist = [form.username.data, books] flash("Book Added", 'success') return render_template('addbook.html', form=form)
def bookin(): """ 书籍录入 输入书籍的名字,将书籍的 书名, 封面, 简介 录入数据库 """ if current_user.role_id == 2: form = BookForm() if form.validate_on_submit(): bookname = form.bookname.data get_url = "https://api.douban.com/v2/book/search?q=%s" % bookname resp_1 = json.loads(urlopen(get_url).read().decode('utf-8')) book_id = resp_1['books'][0]['id'] url = "https://api.douban.com/v2/book/%s" % book_id resp_2 = json.loads(urlopen(url).read().decode('utf-8')) book = Book(url=url, name=resp_2['title'], author=resp_2['author'][0], \ tag=form.tag.data, summary=resp_2['summary'], \ image=resp_2['images'].get('large'), user_id=None, end=None, \ status=False) db.session.add(book) db.session.commit() flash('书籍已录入!') return redirect(url_for('books.bookin')) return render_template('bookin.html', form=form) else: return redirect(url_for('books.home'))
def addbook(request, id=1): if request.POST: form = BookForm(request.POST) if form.is_valid(): book = form.save(commit=False) form.save() return redirect('/books/all', )
def books_list(): form = BookForm() error = "" if request.method == "POST": if form.validate_on_submit(): books.create(form.data) books.save_all() if 'file' not in request.files: flash('No file part') return redirect(request.url) file = request.files['file'] if file.filename == '': flash('No selected file') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) flash("File is uploaded") return redirect(url_for('uploaded_file', filename=filename)) if form.validate_on_submit(): books.create(form.data) books.save_all() return redirect(url_for("books_list")) return render_template("books.html", form=form, books=books.all(), error=error)
def addbook(request): args = {} args.update(csrf(request)) args['form'] = BookForm() args['username'] = auth.get_user(request).username if request.POST: form = BookForm(request.POST, request.FILES) if form.is_valid(): book = form.save(commit=False) book.book_from = request.user book.book_date = timezone.now() book.save() return redirect('/books/get/%s/' % book.id) else: form = BookForm() return render_to_response('AddBook.html', args)
def index(): login_form = LoginForm(flask.request.form) book_form = BookForm(flask.request.form) if login_form.validate(): username = login_form.username.data password = login_form.password.data user_info = { 'id': username, 'pwd': password, 'act': 'login', '_': '1512131406585', } my_session = requests.Session() m = my_session.post(login_url, data=user_info, headers=headers) if 'ok' in json.loads(m.content.decode())['msg']: session['username'] = username session['password'] = password name = json.loads(m.content.decode())['data']['name'] book_form.select.choices = [(result[1], result[1]) for result in results] return render_template("index.html", title='Home', form=book_form, session=session, name=name) else: return u'错误' return u"错误"
def insert_book(): form = BookForm() form2 = BookFormDelete() if (form.validate_on_submit and form.title.data and form.author.data): conn = get_db_connection() query = f"INSERT INTO books (title, author) VALUES ('{form.title.data}','{form.author.data}');" execute_query(conn, query) conn.close() flash(f'Book added: {form.title.data}', 'success') return redirect(url_for('home')) elif (form2.validate_on_submit and form2.isbn.data): conn = get_db_connection() tc = search_books_isbn(conn, form2.isbn.data)[0][3] query = f"DELETE FROM books WHERE isbn={form2.isbn.data};" execute_query(conn, query) if (tc != None): #bu kısmı triggerla yap!!! query = f"UPDATE borrowers SET number_of_books=number_of_books-1 WHERE tc={tc};" #execute_query(conn,query) conn.close() flash(f'Book deleted: {form2.isbn.data}', 'success') return redirect(url_for('home')) return render_template('insertbook.html', title='Add book', form=form, form2=form2)
def book(): form = BookForm() if form.validate_on_submit(): if session.get('is_admin'): if form.g_id.data is None: flash('Input guest id') return render_template('book.html', form=form) else: session['g_id'] = form.g_id.data else: session['g_id'] = session.get('user_id') today = datetime.date.today() check_in = form.check_in.data check_out = form.check_out.data if check_out <= check_in or check_in < today: flash('Illegal date input') return render_template('book.html', form=form) cur = mysql.connection.cursor() # 从所有房间中找出还没被预定的房间 check_in = check_in.strftime('%Y-%m-%d') check_out = check_out.strftime('%Y-%m-%d') cur.execute( 'select * from room where r_id not in (select r_id from booking where `from`<%s and `to`>%s)', [check_out, check_in]) rooms = cur.fetchall() session['check_in'] = check_in session['check_out'] = check_out session['meal'] = form.meal.data session['num_adult'] = form.num_adult.data session['num_child'] = form.num_child.data return render_template('select_rooms.html', rooms=rooms) return render_template('book.html', form=form)
def add(): form = BookForm() print form.name.data if form.validate_on_submit(): if b_img: b_img = form.imgname.data else: b_img = 'default.jpg' b_name = form.name.data b_category = form.category.data b_press = form.press.data b_author = form.author.data b_note = form.note.data b = Book(name=b_name, img=b_img, category=b_category, press=b_press, author=b_author, note=b_note, status=False, num=0) db.session.add(b) db.session.commit() if is_not_admin(): time = datetime.now() give = Give(author=g.user.id, book_id=b.id, time=time, status=0) db.session.add(give) db.session.commit() flash("添加成功,等待管理员审核") return redirect(url_for('info', b_id=b.id)) return render_template('book_add.html', g=g, form=form)
def edit_book(request): form = BookForm(request.POST) if request.method == 'POST' and form.validate(): form.populate_obj(user) user.save() redirect('edit_profile') return render_response('edit_profile.html', form=form)
def book_update(book_id): book = session.query(Book).filter(Book.id == book_id).one() form = BookForm(obj=book) success = False if request.method == 'POST': form = BookForm(request.form) if form.validate(): form.populate_obj(book) session.add(book) session.commit() success = True return render_template( 'book_update.html', **{ 'book_id': book, 'form': form, 'success': success })
def default(): form = BookForm(request.form) if (request.method == 'POST' and form.validate()): print(form.data) add_book(form.data) book_list = get_books() return render_template('/home.html', bks=book_list) return render_template('create.html', form=form)
def dodajKnjigu05(request): if request.method == 'POST': form = BookForm(request.POST) if form.is_valid(): knjiga = Knjiga.objects.create() knjiga.naziv = form.cleaned_data['naziv'] knjiga.autor = form.cleaned_data['autor'] knjiga.save() return vj05(request) else: form = BookForm() context = {'form' : form} return render(request, 'bookForm.html', context)
def get_products(): Session = sessionmaker(bind=engine) session = Session() res = session.query(Book).all() form = BookForm() session.flush() session.close() return render_template('search.html', products=res, form=form, user_logged=user_logged, user_name=user_name)
def add_book(): """ Function to load WTForm for adding book and render to html and add to database. Checks first whether a user is logged in, before performing function. WTForms code adapted from Corey Shafer's tutorial found at https://www.youtube.com/watch?v=UIJKdCIEXUQ&list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH&index=3 """ # Check to see if user logged in and render html if g.user: form = BookForm() # Validation of form and insert in collection if form.validate_on_submit(): flash(f"New book added: {form.title.data.title()}!", "success") book = { "title": form.title.data.lower(), "author_fname": form.author_fname.data.lower(), "author_lname": form.author_lname.data.lower(), "category_id": form.category_id.data, "user_id": g.user, "up_votes": 0, "down_votes": 0, "date_added": date.today().strftime("%Y/%m/%d"), "cover_url": form.cover_url.data, "csrf_token": form.csrf_token.data } books = mongo.db.books books.insert_one(book) return redirect( url_for( "get_books", _scheme="https", _external=True)) # Check to see type of user and return of form for correction else: super_user = mongo.db.users.find_one({"username": "******"}) if g.user == str(super_user["_id"]): return render_template( "addbook.html", form=form, categories=mongo.db.categories.find().sort("category_name"), super_user=g.user) else: return render_template( "addbook.html", form=form, categories=mongo.db.categories.find().sort("category_name"), regular_user=g.user) else: flash(f"You need to log in first...", "warning") return redirect( url_for( "log_user_in", _scheme="https", _external=True))
def book_details(book_id): book = books.get(book_id - 1) form = BookForm(data=book) if request.method == "POST": if form.validate_on_submit(): books.update(book_id - 1, form.data) return redirect(url_for("books_list")) return render_template("book.html", form=form, book_id=book_id)
def edit(request, id): """Edit a book, using the passed id""" book = Book.objects.get(pk=id) if request.method == 'POST': # If the form has been submitted... form = BookForm(request.POST, request.FILES, instance=book) # A form bound to the POST data if form.is_valid(): # All validation rules pass # Process the data in form.cleaned_data form.save() return redirect('/accounts/books/') # Redirect after POST else: form = BookForm(instance=book) # Lets bound the form return render_to_response('books/book_form.html', { 'form': form, 'can_add_book': True }, context_instance=RequestContext(request))
def books_list_api_v1(): form = BookForm() error = "" if request.method == "POST": if form.validate_on_submit(): books.create(form.data) return redirect(url_for("books_list_api_v1")) return render_template("books.html", form=form, books=books.all(), error=error)