[text] sonn

Viewer

  1. from flask import Flask, jsonify, request, render_template, redirect
  2. import smtplib, ssl
  3. from flask_sqlalchemy import SQLAlchemy
  4. from models import Task
  5. from models.Task import app, db
  6.  
  7. app = Flask(__name__)
  8.  
  9. app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///management.db'
  10. db = SQLAlchemy(app)
  11.  
  12. class Task(db.Model):
  13.     id = db.Column(db.Integer, primary_key=True)
  14.     title = db.Column(db.String(100), nullable=False)
  15.     complete = db.Column(db.Boolean, default=False)
  16.  
  17.     def __repr__(self):
  18.         return f'<Task {self.id}: {self.title}, Complete: {self.complete}>'
  19.  
  20. """shows all tasks from db"""
  21. @app.route("/")
  22. def get_all(methods=["GET"]):
  23.     tasks = Task.query.all()
  24.     return render_template('index.html', tasks=tasks)
  25.  
  26.  
  27. """insert task"""
  28. @app.route("/add", methods=["POST"])
  29. def add():
  30.     title = request.form.get('title')
  31.     new_task = Task(title=title)
  32.     db.create_all()
  33.     db.session.add(new_task)
  34.     db.session.commit()
  35.     return jsonify({'message': 'task added'})
  36.  
  37.  
  38.  
  39. """marks task as completed"""
  40. @app.route("/update/<int:id>")
  41. def update(id):
  42.     task = Task.query.get(id)
  43.     task.complete = not task.complete
  44.     db.session.commit()
  45.  
  46.     return jsonify({'message': 'task completed'})
  47.  
  48.  
  49. """finds a task by id"""
  50. @app.route("/<int:id>")
  51. def find(id):
  52.     task = Task.query.get(id)
  53.     if task:
  54.         return render_template('task_detail.html', task=task)
  55.     else:
  56.         return f"Task with ID {id} not found.", 404
  57.  
  58.  
  59. """delete task"""
  60. @app.route("/delete/<int:id>")
  61. def delete(id, methods=["DELETE"]):
  62.     task = Task.query.get(id)
  63.     db.session.delete(task)
  64.     db.session.commit()
  65.     return jsonify({'message': 'task deleted'})
  66.  
  67.  
  68.  
  69. """send mail"""
  70. @app.route("/send-email/<int:id>")
  71. def send_email(id, methods=["GET"]):
  72.     context = ssl.create_default_context()
  73.     try:
  74.         server = smtplib.SMTP(smtp_server,port)
  75.         server.ehlo()
  76.         server.starttls(context=context) 
  77.         server.ehlo()
  78.         server.login(sender_email, password)
  79.         # TODO: Send email here
  80.         server.sendmail(sender_email, '[email protected]', 'test')
  81.         return jsonify({'message': 'email sent'})
  82.     except Exception as e:
  83.         return jsonify({'error': str(e)}), 500
  84.     finally:
  85.         server.quit()
  86.  
  87.  
  88. if __name__ == '__main__':
  89.     app.run(host='localhost', port=5001)

Editor

You can edit this paste and save as new:


File Description
  • sonn
  • Paste Code
  • 17 Apr-2024
  • 2.34 Kb
You can Share it: