Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
tran-bookstore/app.py
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
61 lines (51 sloc)
2.8 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from flask import Flask | |
from flask import render_template # using render_template to have the html code in different files | |
from flask_sqlalchemy import SQLAlchemy # database library for flask | |
from flask_wtf import FlaskForm # form library for flask | |
from wtform import StringField, SubmitField #library form | |
from forms import RegisterForm #register form used to add books to the stock | |
app = Flask(__name__) | |
app.config['SQLALCHEMY_DATABASE_URI']= 'sqlite:///books.db' #confgurating a database | |
app.config['SECRET_KEY']='f4e41413da3eb27b9fb55eda' #creating a secret key for addbook function | |
db = SQLAlchemy(app) | |
#models | |
class User(db.Model): #creating a User class for the database that contains the user information | |
id = db.Column(db.Integer(), primary_key=1) #primary key for this database | |
username = db.Column(db.String(length=20), nullable=0, unique=1) | |
password = db.Column(db.String(length=20), nullable=0) | |
class Book(db.Model): #creating a book class for the database that contains the information about books for the store | |
barcode = db.Column(db.String(length=12), nullable=0, primary_key=1) # setting the ISBN 13 number as the primary key for the database | |
title = db.Column(db.String(length=50), nullable=0, unique=1) | |
author = db.Column(db.String(length=50), nullable=0) | |
publicationDate = db.Column(db.String(length=10), nullable=0) | |
quantity = db.Column(db.Integer(), nullable=0) | |
description = db.Column(db.String(length=1000), nullable=0) | |
tradePrice = db.Column(db.String(length=10), nullable=0) | |
retailPrice = db.Column(db.String(length=10), nullable=0) | |
#routes | |
@app.route("/login") #route for login page | |
def login_page(): | |
return render_template("login.html") | |
@app.route("/home") #route home page | |
@app.route("/") #added to routes for the default page and when /home is added | |
def home_page(): | |
return render_template("home.html") | |
@app.route("/stock") | |
def stock_page(): #route to the page showing all the available books | |
books=Book.query.all() | |
return render_template("stock.html", books=books) | |
@app.route("/addstock") | |
def addStock_page(): # route to the page for adding books to the database | |
form = RegisterForm() #using jinja to send the register form to the website | |
return render_template('addstock.html', form=form) | |
#forms | |
class AddBook(FlaskForm): # class created to add more books used on the add stock page | |
barcode = StringField(label='barcode') | |
title = StringField(label='title') | |
author = StringField(label='author') | |
publicationDate = StringField(label=' Publication Date') | |
quantity = StringField(label=' quantity') | |
description = StringField(label='description') | |
tradePrice = StringField(label='Trade Price') | |
retailPrice = StringField(label='Retail Price') | |
submit = SubmitField(label='submit') #submit field |