OneCompiler

flask code

137

from flask import Flask, render_template, request, redirect, url_for
from flask_session import Session
import psycopg2
DB_HOST = '127.0.0.1'
DB_NAME = 'postgres'
DB_USER = 'postgres'
DB_PASSWORD = 'postgres123'
app = Flask(name)
app.config['SESSION_PERMANENT'] = False
app.config['SESSION_TYPE'] = 'filesystem'
Session(app)

def connect_to_db():
try:
conn = psycopg2.connect(
host=DB_HOST,
database=DB_NAME,
user=DB_USER,
password=DB_PASSWORD
)
return conn
except (Exception, psycopg2.DatabaseError) as error:
print(error)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
conn = connect_to_db()
cursor = conn.cursor()
query = "SELECT * FROM check_admin WHERE username=%s AND password=%s"
cursor.execute(query, (username, password))
result = cursor.fetchone()
if result:
session['login'] = True
return redirect(url_for('main'))
return render_template('login.html')

@app.route('/main', methods=['GET', 'POST'])
def main():
if request.method == 'POST':
telephone_no = request.form['telephone_number']
conn = connect_to_db()
cursor = conn.cursor()
query = "SELECT * FROM Customer_info WHERE Telephone_No=?"
cursor.execute(query, (telephone_no,))
print(result)
result = cursor.fetchone()
if result:
customer_name = result[0]
telephone_no = result[1]
telephone_exchange = result[2]
monthly_plan = result[3]
billed_month = result[4]
amount_payable = result[5]
payment_method = 'Cash'
paid_dt_time = None
name_of_account_officer = None
else:
return redirect(url_for('login'))
if session.get('login'):
customer_name = request.form['customer_name']
telephone_no = request.form['telephone_number']
telephone_exchange = request.form['telephone_exchange']
monthly_plan = request.form['monthly_plan']
billed_month = request.form['billed_month']
amount_payable = request.form['amount_payable']
payment_method = 'Cash'
paid_dt_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
name_of_account_officer = request.form['account_officer_details']
else:
return redirect(url_for('login'))
conn = connect_to_db()
cursor = conn.cursor()
query = "UPDATE Customer_info SET Payment_Status='Paid', paid_dt_time=NOW(), Name_of_the_Accounts_Officer=? WHERE Telephone_No=?"
cursor.execute(query, (name_of_account_officer, telephone_no))
conn.commit()
return render_template('receipt.html', customer_name=customer_name, telephone_no=telephone_no, telephone_exchange=telephone_exchange, monthly_plan=monthly_plan, billed_month=billed_month, amount_payable=amount_payable, payment_method=payment_method, paid_dt_time=paid_dt_time, name_of_account_officer=name_of_account_officer)

@app.route('/receipt')
def receipt():
return render_template('receipt.html')

if name == 'main':
app.run(debug=True)