Advertisement
Guest User

Untitled

a guest
Jul 9th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.19 KB | None | 0 0
  1. from sqlalchemy import Column, Integer, String, ForeignKey, create_engine
  2. from sqlalchemy.ext.declarative import declarative_base
  3. from sqlalchemy.orm import sessionmaker, relationship
  4. import random
  5.  
  6. Base = declarative_base()
  7. engine = create_engine('sqlite:///sqlalchemytest.db', echo=True)
  8. Session = sessionmaker(bind=engine)
  9. ses = Session()
  10. _SESSION = {}
  11.  
  12.  
  13. class User(Base):
  14.     __tablename__ = 'users'
  15.     id = Column(Integer, primary_key=True)
  16.     email = Column(String(255))
  17.     password = Column(String(255))
  18.     remember_token = Column(String(255))
  19.     user_level = Column(Integer)
  20.  
  21.  
  22. class Task(Base):
  23.     __tablename__ = 'tasks'
  24.  
  25.     id = Column(Integer, primary_key=True)
  26.     title = Column(String(50))
  27.     description = Column(String(255))
  28.     priority = Column(Integer)
  29.     completed = Column(Integer)
  30.     user_id = Column(Integer, ForeignKey('users.id'))
  31.  
  32.     user = relationship(User, back_populates="users")
  33.  
  34.  
  35. class TaskList(Base):
  36.     __tablename__ = 'task_lists'
  37.  
  38.     id = Column(Integer, primary_key=True)
  39.     title = Column(String(50))
  40.     description = Column(String(255))
  41.  
  42.  
  43. def createDB():
  44.     Base.metadata.create_all(engine)
  45.  
  46.  
  47. def add_task(title, description, priority, completed):
  48.     email = _SESSION['email']
  49.     user = Session.query(User).filter(User.email == email)
  50.     user.tasks.append(title, description, priority, completed)
  51.     ses.add(user)
  52.     ses.commit()
  53.  
  54.  
  55. def create_user(email, password, rememberToken, userLevel):
  56.     user = User(
  57.         email=email,
  58.         password=password,
  59.         remember_token=rememberToken,
  60.         user_level=userLevel)
  61.     print(user.email)
  62.     ses.add(user)
  63.     ses.commit()
  64.  
  65.  
  66. def login(email, password):
  67.     if not _SESSION:
  68.         temp = Session.query(User).filter(User.email == email)
  69.         if temp and temp.password == password:
  70.                 _SESSION['email'] = email
  71.                 _SESSION['password'] = password
  72.                 return "Success"
  73.         return "Failure to Login"
  74.     return "You're already logged in!"
  75.  
  76.  
  77. def logout():
  78.     if _SESSION:
  79.         _SESSION['email'] = None
  80.         _SESSION['password'] = None
  81.         return "Successfully loggeed out"
  82.     return "You weren't logged in."
  83.  
  84. while True:
  85.     print("1. Create Database.\n2. Create User\n3. Login\n4. Add Task.\n5. Logout\n6. Leave")
  86.     option = int(input("Please select an option: "))
  87.     if option == 1:
  88.         createDB()
  89.     elif option == 2:
  90.         email = input("Insert email: ")
  91.         password = input("Insert password: ")
  92.         rememberToken = str(random.randint(1, 1000))
  93.         userLevel = int(input("Insert User Level: "))
  94.         create_user(email, password, rememberToken, userLevel)
  95.     elif option == 3:
  96.         email = input("Insert email: ")
  97.         password = input("Insert password: ")
  98.         print(login(email, password))
  99.     elif option == 4:
  100.         title = input("Insert Title: ")
  101.         description = input("Insert Description: ")
  102.         priority = int(input("Insert Priority (0-3): "))
  103.         completed = int(input("Completed: "))
  104.         add_task(title, description, priority, completed)
  105.     elif option == 5:
  106.         print(logout)
  107.     elif option == 6:
  108.         break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement