Team Ai
Apppublic

Salysali/df-web-development-using-python-3d2c

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
app.py174 linesDownload Raw Back to root
1import os
2from flask import Flask ,render_template,redirect,url_for,request,flash
3from db_setup import Owner,Item,Base
4from sqlalchemy import create_engine
5from sqlalchemy.orm import (sessionmaker,scoped_session)
6from flask import session as login_session
7from functools import wraps
8engine=create_engine('sqlite:///mydb.db')
9Base.metadata.bind=engine
10session=scoped_session(sessionmaker(bind=engine))
11
12app=Flask(__name__)
13def login_required(f):
14	@wraps(f)
15	def x(*args,**kwargs):
16		if 'email' not in login_session:
17			return redirect(url_for('login'))
18		return f(*args,**kwargs)
19	return x
20
21
22# @app.route('/hello/<name>')
23# def name(name):
24# 	return ("<h1><i>welcome to "+name+"</i></h1>")
25# @app.route('/Myname/<name1>/<rollno>')
26# def Myname(name1,rollno):
27# 	return ("<h1><i>My name is "+name1+"<br>My rollno is "+rollno+"</i></h1>")
28# @app.route('/Mynames/<name1>/<rollno>')
29# def Mynames(name1,rollno):
30# 	return ("<h1><i>hello! %s"%name1+""+"<br>Your rollno is %s"%rollno+""+"</i></h1>")
31# @app.route('/Adds/<int:num1>/<int:num2>')
32# def Adds(num1,num2):
33# 	num1=num1+num2
34# 	return ("<h1><i>Addition of two numbers {}:</i></h1>".format(num1))
35# @app.route('/Add/<int:num1>/<int:num2>')
36# def Add(num1,num2):
37# 	num1=num1+num2
38# 	return ("<h1><i>Addition of two numbers %d:" % num1+""+"</i></h1>")
39# @app.route('/')
40# def sample():
41# 	return render_template('index.html')
42# @app.route('/message/<name>')
43# def mess(name):
44# 	return render_template('message.html',name=name)
45# @app.route('/fl/<fname>/<lname>')
46# def flnam(fname,lname):
47# 	return render_template('fnamelname.html',fname=fname,lname=lname)
48# @app.route('/for/<int:lower>/<int:upper>')
49# def forloop(lower,upper):
50# 	return render_template('for.html',lower=lower,upper=upper)	
51# @app.route('/admin/<name>')
52# def admin_name(name):
53# 	return 'hey this is %s' %name
54# @app.route('/guest/<name>')
55# def guest_name(name):
56# 	return '%s is a guest' %name
57# @app.route('/user')
58# def user(user):
59# 	if user==admin_name:
60# 		return redirect(url_for(user))
61# 	else:
62# 		return redirect(url_for(guest_name))
63# @app.route('/Multi/<int:n>/<int:m>')
64# def multi(n,m):
65# 	return render_template('Multi.html',n=n,m=m)
66# @app.route('/leap/<int:l>/<int:m>')
67# def leap(l,m):
68# 	return render_template('leap.html',l=l,m=m)
69# @app.route('/EorO/<int:l>')
70# def evenorodd(l):
71# 	lst=[]
72# 	for i in range(l):
73# 		lst.append(i)
74# 	return render_template('eoro.html',l=lst)
75# @app.route('/table/<int:row>/<int:col>')
76# def table(row,col):
77# 	lst1=[]
78# 	n=1;
79# 	for i in range(1,row+1):
80# 		lst2=[]
81# 		for j in range(1,col+1):
82# 			lst2.append(n)
83# 			n=n+1
84# 		lst1.append(lst2)	
85# 	return render_template('table.html',lst1=lst1,row=row,col=col)
86@app.route('/')
87def home():
88	items=session.query(Item).all()
89	return render_template('items.html',items=items)
90	# return render_template('home.html')
91@app.route('/register',methods=['POST','GET'])
92def register():
93	if request.method=="POST":
94		name=request.form['name']
95		email=request.form['email']
96		password=request.form['pass']
97		owner=Owner(name=name,email=email,password=password)
98		session.add(owner)
99		session.commit()
100		flash('Successfully register','success')
101	return render_template('register.html')
102@app.route('/newitem',methods=['POST','GET'])
103@login_required
104def newitem():
105
106	if request.method=="POST":
107		brandname=request.form['brandname']
108		image=request.form['image']
109		model=request.form['model']
110		cost=request.form['cost']
111		description=request.form['desc']
112		owner_id=1
113		item=Item(brandname=brandname,image=image,model=model,cost=cost,description=description,owner_id=owner_id)
114		session.add(item)
115		session.commit()
116		flash('Successfully added','success')
117	return render_template('newitem.html')
118@app.route('/login',methods=['POST','GET'])
119def login():
120	if request.method=="POST":
121		email=request.form['email']
122		password=request.form['pass']
123		owner=session.query(Owner).filter_by(email=email,password=password).one_or_none()
124		if owner==None:
125			flash("Invalid Credentials.........",'danger')
126			return redirect(url_for('login'))
127		login_session['email']=email
128		login_session['name']=owner.name
129		flash('welcome'+str(owner.name),'success')
130		return redirect(url_for('home'))
131	return render_template('login.html')
132@app.route('/logout')
133@login_required
134def logout():
135	del login_session['email']
136	del login_session['name']
137	flash('Successfully logout thank you visit again......','success')
138	return redirect(url_for('home'))
139@app.route('/Item/<int:item_id>/edit',methods=['POST','GET'])
140@login_required
141def edititem(item_id):
142	if request.method=="POST":
143		brandname=request.form['brandname']
144		image=request.form['image']
145		model=request.form['model']
146		cost=request.form['cost']
147		description=request.form['desc']
148		item=session.query(Item).filter_by(id=item_id).one_or_none()
149		item.brandname=brandname
150		item.image=image
151		item.model=model
152		item.cost=cost
153		item.description=description
154		session.add(item)
155		session.commit()
156		flash ('Successfully updated!!!','success')
157		return render_template('items.html')
158	else:
159	    item=session.query(Item).filter_by(id=item_id).one_or_none()
160	    return render_template("update.html",item=item)  
161@app.route('/Item/<int:item_id>/delete')
162@login_required
163def deleteitem(item_id):
164	item=session.query(Item).filter_by(id=item_id).one_or_none()
165	session.delete(item)
166	session.commit()
167	flash("Item is deleted!!","danger")
168	return render_template('home.html')
169#always last
170if __name__=='__main__':
171	app.secret_key='123asdfaw'
172	app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 7860)), debug=True)
173
174