Guest User

Untitled

a guest
Jul 25th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. #all the imports
  2. import sqlite3
  3. from flask import Flask, request,session, g, redirect, url_for, abort, render_template, flash
  4. from contextlib import closing
  5.  
  6. #configuration
  7. DATABASE= 'tmp/flaskr.db'
  8. DEBUG= True
  9. SECRET_KEY= 'development key' ##more difficult
  10. USERNAME= 'admin'
  11. PASSWORD= 'admin'
  12.  
  13. #application
  14. app= Flask(__name__)
  15. app.config.from_object(__name__)
  16.  
  17. def connect_db():
  18. return sqlite3.connect(app.config['DATABASE'])
  19.  
  20. def init_db():
  21. with closing(connect_db()) as db:
  22. with app.open_resource('schema.sql') as f:
  23. db.cursor().executescript(f.read())
  24. db.commit()
  25.  
  26. @app.before_request()
  27. def before_request():
  28. g.db= connect_db()
  29.  
  30. @app.after_request()
  31. def after_request():
  32. g.db.close()
  33. return response
  34.  
  35. @app.route('/')
  36. def show_entries():
  37. cur = g.db.execute('select.title, text from entries order by desc')
  38. entries= [dict(title=row[0], text=row[1]) for row in cur.fetchall()]
  39. return render_template('show_entries.html', entries=entries)
  40.  
  41. @app.route('/add', methods=['POST'])
  42. def add_entry():
  43. if not session.get('logged in'):
  44. abort(401)
  45. g.db.execute('insert into entries (title,text) values(?, ?)',
  46. [request.form['title'],
  47. request.form['text']])
  48. g.db.commit()
  49. flash('New entry was successfully posted')
  50. return redirect(url_for('show_entries'))
  51.  
  52. @app.route('/login', methods=['GET', 'POST'])
  53. def login():
  54. error= None
  55. if request.method== 'POST':
  56. if request.form['username']!=app.config['USERNAME']:
  57. error='Invalid username'
  58.  
  59. elif request.form['password']!=app.config['PASSWORD']:
  60. error='Invalid password'
  61.  
  62. else:
  63. session['logged_in']=True
  64. flash('You were logged in')
  65. return redirect(url_for('show_entries'))
  66. return render_template('login.html', error=error)
  67.  
  68. @app.route('/logout')
  69. def logout():
  70. session.pop('logged_in', None)
  71. flash('You were logged out')
  72. return redirect(url_for('show_entries')
  73.  
  74. if __name__ == '__main__':
  75. app.run()
Add Comment
Please, Sign In to add comment