Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask_sqlalchemy import SQLAlchemy
- from flask import Flask
- import time
- app = Flask(__name__)
- app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
- db = SQLAlchemy(app)
- class User(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- username = db.Column(db.String(80), unique=True)
- password = db.Column(db.String(120))
- door_1 = db.Column(db.Integer)
- door_2 = db.Column(db.Integer)
- door_3 = db.Column(db.Integer)
- def __init__(self, username, password, door_1, door_2, door_3):
- self.username = username
- self.password = password
- self.door_1 = door_1
- self.door_2 = door_2
- self.door_3 = door_3
- def __repr__(self):
- return '<User %r>' % self.username
- class Log(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- log = db.Column(db.String(200), unique=True)
- def __init__(self, log):
- self.log = log
- def __repr__(self):
- return '<User %r>' % self.username
- @app.route('/')
- def index():
- return "hey"
- @app.route('/adduser/<username>/<password>')
- def add_user(username, password):
- if (username is not None) and (password is not None):
- db.session.add(User(username, password, 0, 0, 0))
- db.session.commit()
- return "Done!!"
- else:
- return 'Error'
- @app.route('/login/<username>/<password>')
- def log_in(username, password):
- if username is None or password is None:
- return "Please enter Username and Password"
- else:
- user = User.query.filter_by(username=username).first()
- if user is None:
- return "incorrect Username"
- elif user.password != password:
- return "incorrect password"
- else:
- if username is not "ahmed":
- return "User"
- return "Pass"
- @app.route("/access")
- def accesslog():
- s = ""
- for log in Log.query.all():
- s=s + log.log+"\n"
- return s
- @app.route('/open/<username>/<password>/<door>')
- def openDoor(username, password, door):
- if username is None or password is None:
- return "Please enter Username and Password"
- else:
- user = User.query.filter_by(username=username).first()
- if user is None:
- return "incorrect Username"
- elif user.password != password:
- return "incorrect password"
- else:
- if door == "1":
- if user.door_1 == 1:
- return "blocked"
- # opendoor(1)
- elif door == "2":
- if user.door_2 == 1:
- return "blocked"
- # opendoor(2)
- elif door == "3":
- if user.door_3 == 1:
- return "blocked"
- # opendoor(3)
- db.session.add(Log(username + " opened door number " + door + " at time "+time.strftime("%d/%m/%Y %I:%M:%S %p")))
- db.session.commit()
- return "opened"
- @app.route('/close/<username>/<password>/<door>')
- def closeDoor(username, password, door):
- if username is None or password is None:
- return "Please enter Username and Password"
- else:
- user = User.query.filter_by(username=username).first()
- if user is None:
- return "incorrect Username"
- elif user.password != password:
- return "incorrect password"
- else:
- if door == "1":
- if user.door_1 == 1:
- return "blocked"
- # closedoor(1)
- elif door == "2":
- if user.door_2 == 1:
- return "blocked"
- # closedoor(2)
- elif door == "3":
- if user.door_3 == 1:
- return "blocked"
- # closedoor(3)
- db.session.add(Log(username + " closed door number " + door + " at time "+time.strftime("%d/%m/%Y %I:%M:%S %p")))
- db.session.commit()
- return "closed"
- @app.route('/access/<username>/<door>/<access>')
- def access(username, door, access):
- if username is None or door is None or access is None:
- return "Please enter door and access"
- else:
- # find the user
- user = User.query.filter_by(username=username).first()
- if user is None:
- return "incorrect Username"
- else:
- if access == "yes":
- if door == "1":
- user.door_2 = 0
- if door == "2":
- user.door_3 = 0
- if door == "3":
- user.door_3 = 0
- elif access == "no":
- if door == "1":
- user.door_2 = 1
- if door == "2":
- user.door_3 = 1
- if door == "3":
- user.door_3 = 1
- else:
- return "Error"
- db.session.commit()
- return "Pass"
- if __name__ == '__main__':
- try:
- db.create_all()
- except Exception, e:
- pass
- app.run(debug=True, host="0.0.0.0")
- Flask==0.10.1
- Flask-SQLAlchemy==2.1
- Jinja2==2.8
- MarkupSafe==0.23
- SQLAlchemy==1.0.12
- Werkzeug==0.11.5
- itsdangerous==0.24
- wsgiref==0.1.2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement