1+ from flask import Flask , render_template ,url_for , request , redirect
2+ from flask_sqlalchemy import SQLAlchemy
3+ from datetime import datetime
4+
5+ app = Flask (__name__ )
6+ app .config ['SQLALCHEMY_DATABASE_URI' ] = 'sqlite:///test.db'
7+ app .config ['SQLALCHEMY_TRACK_MODIFICATIONS' ] = False
8+ db = SQLAlchemy (app )
9+
10+
11+
12+
13+
14+
15+ class Todo (db .Model ):
16+ id = db .Column (db .Integer , primary_key = True )
17+ content = db .Column (db .String (200 ),nullable = False )
18+ completed = db .Column (db .Integer ,default = 0 )
19+ pub_date = db .Column (db .DateTime , nullable = False ,
20+ default = datetime .utcnow )
21+ def __repr__ (self ):
22+ return '<Task %r>' % self .id
23+
24+
25+
26+
27+
28+
29+ @app .route ('/' ,methods = ['POST' ,'GET' ])
30+ def index ():
31+ if request .method == "POST" :
32+ task_content = request .form ['task' ]
33+ new_task = Todo (content = task_content )
34+
35+ try :
36+ db .session .add (new_task )
37+ db .session .commit ()
38+ return redirect ('/' )
39+ except :
40+ return 'There is an issue'
41+ else :
42+ tasks = Todo .query .order_by (Todo .pub_date ).all ()
43+ return render_template ('index.html' ,tasks = tasks )
44+
45+ @app .route ('/delete/<int:id>' )
46+ def delete (id ):
47+ task = Todo .query .get_or_404 (id )
48+ try :
49+ db .session .delete (task )
50+ db .session .commit ()
51+ return redirect ('/' )
52+ except :
53+ return "This is an Problem while deleting"
54+
55+ @app .route ('/update/<int:id>' ,methods = ['POST' ,'GET' ])
56+ def update (id ):
57+ task = Todo .query .get_or_404 (id )
58+ if request .method == "POST" :
59+ task .content = request .form ['task' ]
60+
61+
62+ try :
63+
64+ db .session .commit ()
65+ return redirect ('/' )
66+ except :
67+ return 'There is an issue'
68+ else :
69+ tasks = Todo .query .order_by (Todo .pub_date ).all ()
70+
71+ return render_template ('index.html' , update_task = task ,tasks = tasks )
72+
73+
74+
75+
76+ if __name__ == "__main__" :
77+ app .run (debug = True )
0 commit comments