bellerophon-

dashboard

Apr 17th, 2020
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.53 KB | None | 0 0
  1. import os
  2. from flask import Flask, render_template
  3. from flask_sqlalchemy import SQLAlchemy
  4. from flask_migrate import Migrate
  5. from datetime import datetime
  6.  
  7. # This grabs our directory
  8. basedir = os.path.abspath(os.path.dirname(__file__))
  9.  
  10. app = Flask(__name__)
  11.  
  12. # Connect our Flask app with our Database
  13. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
  14. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  15.  
  16. db = SQLAlchemy(app)
  17. Migrate(app, db)
  18.  
  19.  
  20. class Task(db.Model):
  21.     __tablename__ = "tasks"
  22.  
  23.     id = db.Column(db.Integer, primary_key=True)
  24.     name = db.Column(db.String(50), nullable=False)
  25.     user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
  26.     course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
  27.     description = db.Column(db.Text)
  28.     start_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
  29.     due_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
  30.  
  31.     def __init__(self, name, user_id, course_id, start_date, due_date=None, description=''):
  32.         self.name = name
  33.         self.user_id = user_id
  34.         self.course_id = course_id
  35.         self.start_date = start_date
  36.         if due_date is None:
  37.             due_date = start_date
  38.         self.due_date = due_date
  39.         self.description = description
  40.  
  41.     def __repr__(self):
  42.         return f"Task: {self.name} - {self.description}"
  43.  
  44.  
  45. class User(db.Model):
  46.     __tablename__ = "users"
  47.  
  48.     id = db.Column(db.Integer, primary_key=True)
  49.     name = db.Column(db.String(50), nullable=False)
  50.     tasks = db.relationship('Task', backref='user', lazy='dynamic')
  51.  
  52.     def __init__(self, name):
  53.         self.name = name
  54.  
  55.     def __repr__(self):
  56.         return self.name
  57.  
  58.  
  59. class Course(db.Model):
  60.     __tablename__ = "courses"
  61.  
  62.     id = db.Column(db.Integer, primary_key=True)
  63.     name = db.Column(db.String(20))
  64.     tasks = db.relationship('Task', backref='course', lazy='dynamic')
  65.     email = db.Column(db.String(50))
  66.  
  67.     def __init__(self, name):
  68.         self.name = name
  69.  
  70.     def __repr__(self):
  71.         return self.name
  72.  
  73.  
  74. @app.route('/db')
  75. def dashboard2():
  76.     return render_template('dashboard.html')
  77.  
  78.  
  79. @app.route('/d')
  80. def dash():
  81.     return render_template('dash.html')
  82.  
  83.  
  84. @app.route('/')
  85. def index():
  86.     return 'Main page'
  87.  
  88.  
  89. @app.route('/list/<name>')
  90. def list(name):
  91.     tasks = Task.query.filter_by(user=name)
  92.     return render_template('list.html', tasks=tasks)
  93.  
  94.  
  95. if __name__ == '__main__':
  96.     app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment