check the code is run properly or not init.py from flask import Flask, render_template, request, redirect, url_for
Question:
check the code is run properly or not
init.py
from flask import Flask, render_template, request, redirect, url_for
from Forms import CreateUserForm, CreateCustomerForm
import shelve, User, Customer
app = Flask(__name__,template_folder="template")
@app.route('/')
def home():
return render_template('home.html')
@app.route('/createUser', methods=['GET', 'POST'])
def create_user():
create_user_form = CreateUserForm(request.form)
if request.method == 'POST' and create_user_form.validate():
users_dict = {}
db = shelve.open('user.db', 'c')
try:
users_dict = db['Users']
except:
print("Error in retrieving Users from user.db.")
user = User.User(create_user_form.first_name.data, create_user_form.last_name.data, create_user_form.gender.data,)
users_dict[user.get_user_id()] = user
db['Users'] = users_dict
db.close()
return redirect(url_for('home'))
return render_template('createUser.html', form=create_user_form)
@app.route('/createCustomer', methods=['GET', 'POST'])
def create_customer():
create_customer_form = CreateCustomerForm(request.form)
if request.method == 'POST' and create_customer_form.validate():
customers_dict = {}
db = shelve.open('customer.db', 'c')
try:
customers_dict = db['Customers']
except:
print("Error in retrieving Customers from customer.db.")
customer = Customer.Customer(create_customer_form.first_name.data, create_customer_form.last_name.data,
create_customer_form.gender.data,
create_customer_form.email.data,
create_customer_form.date_joined.data, create_customer_form.address.data)
customers_dict[customer.get_customer_id()] = customer
db['Customers'] = customers_dict
db.close()
return redirect(url_for('home'))
return render_template('createCustomer.html', form=create_customer_form)
@app.route('/retrieveUsers')
def retrieve_users():
users_dict = {}
db = shelve.open('user.db', 'r')
users_dict = db['Users']
db.close()
users_list = []
for key in users_dict:
user = users_dict.get(key)
users_list.append(user)
return render_template('retrieveUsers.html', count=len(users_list), users_list=users_list)
@app.route('/retrieveCustomers')
def retrieve_customers():
customers_dict = {}
db = shelve.open('customer.db', 'r')
customers_dict = db['Customers']
db.close()
customers_list = []
for key in customers_dict:
customer = customers_dict.get(key)
customers_list.append(customer)
return render_template('retrieveCustomers.html', count=len(customers_list), customers_list=customers_list)
@app.route('/updateUser/
def update_user(id):
update_user_form = CreateUserForm(request.form)
if request.method == 'POST' and update_user_form.validate():
users_dict = {}
db = shelve.open('user.db', 'w')
users_dict = db['Users']
user = users_dict.get(id)
user.set_first_name(update_user_form.first_name.data)
user.set_last_name(update_user_form.last_name.data)
user.set_gender(update_user_form.gender.data)
db['Users'] = users_dict
db.close()
return redirect(url_for('retrieve_users'))
else:
users_dict = {}
db = shelve.open('user.db', 'r')
users_dict = db['Users']
db.close()
user = users_dict.get(id)
update_user_form.first_name.data = user.get_first_name()
update_user_form.last_name.data = user.get_last_name()
update_user_form.gender.data = user.get_gender()
return render_template('updateUser.html', form=update_user_form)
@app.route('/updateCustomer/
def update_customer(id):
update_customer_form = CreateCustomerForm(request.form)
if request.method == 'POST' and update_customer_form.validate():
customers_dict = {}
db = shelve.open('customer.db', 'w')
customers_dict = db['Customers']
customer = customers_dict.get(id)
customer.set_first_name(update_customer_form.first_name.data)
customer.set_last_name(update_customer_form.last_name.data)
customer.set_gender(update_customer_form.gender.data)
customer.set_email(update_customer_form.email.data)
customer.set_date_joined(update_customer_form.date_joined.data)
customer.set_address(update_customer_form.address.data)
db['Customers'] = customers_dict
db.close()
return redirect(url_for('retrieve_customers'))
else:
customers_dict = {}
db = shelve.open('customer.db', 'r')
customers_dict = db['Customers']
db.close()
customer = customers_dict.get(id)
update_customer_form.first_name.data = customer.get_first_name()
update_customer_form.last_name.data = customer.get_last_name()
update_customer_form.gender.data = customer.get_gender()
update_customer_form.email.data = customer.get_email()
update_customer_form.date_joined.data = customer.get_date_joined()
update_customer_form.address.data = customer.get_address()
return render_template('updateCustomer.html', form=update_customer_form)
@app.route('/deleteUser/
def delete_user(id):
users_dict = {}
db = shelve.open('user.db', 'w')
users_dict = db['Users']
users_dict.pop(id)
db['Users'] = users_dict
db.close()
return redirect(url_for('retrieve_users'))
@app.route('/deleteCustomer/
def delete_customer(id):
customers_dict = {}
db = shelve.open('customer.db', 'w')
customers_dict = db['Customers']
customers_dict.pop(id)
db['Customers'] = customers_dict
db.close()
return redirect(url_for('retrieve_customers'))
if __name__ == '__main__':
app.run(port=4996)
Forms.py
from wtforms import Form, StringField, SelectField, TextAreaField, validators
from wtforms.fields import EmailField,DateField, IntegerField
class CreateUserForm(Form):
first_name = StringField('First Name', [validators.Length(min=1, max=150), validators.DataRequired()])
last_name = StringField('Last Name', [validators.Length(min=1, max=150), validators.DataRequired()])
gender = SelectField('Gender', [validators.DataRequired()], choices=[('', 'Select'), ('F', 'Female'), ('M', 'Male')], default='')
class CreateCustomerForm(Form):
first_name = StringField('First Name', [validators.Length(min=1, max=150), validators.DataRequired()])
last_name = StringField('Last Name', [validators.Length(min=1, max=150), validators.DataRequired()])
gender = SelectField('Gender', [validators.DataRequired()], choices=[('', 'Select'), ('F', 'Female'), ('M', 'Male')], default='')
email = EmailField('Email', [validators.Email(), validators.DataRequired()])
date_joined = DateField('Date Joined', format='%Y-%m-%d')
address = TextAreaField('Mailing Address', [validators.length(max=200), validators.DataRequired()])
Customer.py
import User
class Customer(User.User):
count_id = 0
def __init__(self, first_name, last_name, gender,email, date_joined, address):
super().__init__(first_name, last_name, gender)
Customer.count_id += 1
self.__customer_id = Customer.count_id
self.__email = email
self.__date_joined = date_joined
self.__address = address
# accessor methods
def get_customer_id(self):
return self.__customer_id
def get_email(self):
return self.__email
def get_date_joined(self):
return self.__date_joined
def get_address(self):
return self.__address
# mutator methods
def set_customer_id(self, customer_id):
self.__customer_id = customer_id
def set_email(self, email):
self.__email = email
def set_address(self, address):
self.__address = address
def set_date_joined(self, date_joined):
self.__date_joined = date_joined
Users.py
class User:
count_id = 0
# initializer method
def __init__(self, first_name, last_name, gender,):
User.count_id += 1
self.__user_id = User.count_id
self.__first_name = first_name
self.__last_name = last_name
self.__gender = gender
# accessor methods
def get_user_id(self):
return self.__user_id
def get_first_name(self):
return self.__first_name
def get_last_name(self):
return self.__last_name
def get_gender(self):
return self.__gender
# mutator methods
def set_user_id(self, user_id):
self.__user_id = user_id
def set_first_name(self, first_name):
self.__first_name = first_name
def set_last_name(self, last_name):
self.__last_name = last_name
def set_gender(self, gender):
self.__gender = gender
login.html
Login
reset_password.html
reset_password
div>
home.html
{% extends "base.html" %}
{% block title %}Library Loan System - Home{% endblock %}
{% block content %}
Home
Welcome to marvelous cake shop!
{% endblock %}
createCustomer.html
{% extends "base.html" %}
{% block title %}Library Loan System - Create Customer{% endblock %}
{% block content %}
{% from "includes/_formHelper.html" import render_field %}
Create Customer
{% endblock %}
Income Tax Fundamentals 2013
ISBN: 9781285586618
31st Edition
Authors: Gerald E. Whittenburg, Martha Altus Buller, Steven L Gill