Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- from flask import Flask, render_template
- from flask_sqlalchemy import SQLAlchemy
- from flask_migrate import Migrate
- from datetime import datetime
- # This grabs our directory
- basedir = os.path.abspath(os.path.dirname(__file__))
- app = Flask(__name__)
- # Connect our Flask app with our Database
- app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
- app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
- db = SQLAlchemy(app)
- Migrate(app, db)
- class Task(db.Model):
- __tablename__ = "tasks"
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(50), nullable=False)
- user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
- course_id = db.Column(db.Integer, db.ForeignKey('courses.id'))
- description = db.Column(db.Text)
- start_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
- due_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
- def __init__(self, name, user_id, course_id, start_date, due_date=None, description=''):
- self.name = name
- self.user_id = user_id
- self.course_id = course_id
- self.start_date = start_date
- if due_date is None:
- due_date = start_date
- self.due_date = due_date
- self.description = description
- def __repr__(self):
- return f"Task: {self.name} - {self.description}"
- class User(db.Model):
- __tablename__ = "users"
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(50), nullable=False)
- tasks = db.relationship('Task', backref='user', lazy='dynamic')
- def __init__(self, name):
- self.name = name
- def __repr__(self):
- return self.name
- class Course(db.Model):
- __tablename__ = "courses"
- id = db.Column(db.Integer, primary_key=True)
- name = db.Column(db.String(20))
- tasks = db.relationship('Task', backref='course', lazy='dynamic')
- email = db.Column(db.String(50))
- def __init__(self, name):
- self.name = name
- def __repr__(self):
- return self.name
- @app.route('/db')
- def dashboard2():
- return render_template('dashboard.html')
- @app.route('/d')
- def dash():
- return render_template('dash.html')
- @app.route('/')
- def index():
- return 'Main page'
- @app.route('/list/<name>')
- def list(name):
- tasks = Task.query.filter_by(user=name)
- return render_template('list.html', tasks=tasks)
- if __name__ == '__main__':
- app.run(debug=True)
Advertisement
Add Comment
Please, Sign In to add comment